C++ 计算向量中的位

C++ 计算向量中的位,c++,vector,C++,Vector,我已经编码了一个5位的线性反馈移位寄存器。尝试通过频率测试确定生成的密钥的强度,计算位0和位1的数量。但是计数是完全不正确的。我不知道代码中有什么错误,以下是代码的相关部分: for ( unsigned int freqo; freqo < keyRej.size(); freqo++) { if (keyRej[freqo] == 1) { count1 = count1 + 1; } else{count0 = count0 +1;} }

我已经编码了一个5位的线性反馈移位寄存器。尝试通过频率测试确定生成的密钥的强度,计算位0和位1的数量。但是计数是完全不正确的。我不知道代码中有什么错误,以下是代码的相关部分:

 for ( unsigned int freqo; freqo < keyRej.size(); freqo++)
  {
   if (keyRej[freqo] == 1) 
   { 
    count1 = count1 + 1;
   }
   else{count0 = count0 +1;}
  }
 cout << count1 << "\n";
 cout << count0 << "\n";
for(无符号int-freqo;freqoC++中的CUT

,变量默认情况下不设置为零。 即,您需要编写

int count0=0
;最初将
count0
设置为零。类似地,对于
count1


实际上,在初始化之前使用变量是未定义的行为。

< P> C++中,变量默认情况下不设置为零。 即,您需要编写
int count0=0
;最初将
count0
设置为零。类似地,对于
count1


事实上,在初始化之前使用变量是未定义的行为。

在哪里初始化count0和count1?我在main()的开头初始化了它们,说“int count1,count0;”@MohamedAhmed所以你没有初始化它们,这是一个problem@MohamedAhmed如果将变量count0和count1声明为局部变量而未初始化,则它们包含伪值。因此,要么将它们声明为全局变量,在这种情况下,它们会自动初始化为0,要么手动将它们初始化为0。为什么不使用
std:;位集
在哪里初始化count0和count1?我已经在main()的开头初始化了它们,说“int count1,count0;”@MohamedAhmed所以你没有初始化它们,这是一个problem@MohamedAhmed如果将变量count0和count1声明为局部变量而未初始化,则它们包含伪值。因此,要么将它们声明为全局变量,在这种情况下,它们会自动初始化为0,要么手动将它们初始化为0。为什么不使用
std:;bitset
我已经初始化了变量,现在我得到了bot count1和count0的零。我发布了一个代码()的链接,我初始化了变量,现在我得到了bot count1和count0的零。我发布了代码()的链接