我正在尝试用C ++创建一个位集矢量。为此,我尝试了下面的代码片段中显示的尝试:
vector<bitset<8>> bvc;
while (true) {
bitset<8> bstemp( (long) xtemp );
if (bstemp.count == y1) {
bvc.push_back(bstemp);
}
if ( xtemp == 0) {
break;
}
xtemp = (xtemp-1) & ntemp;
}
当我尝试编译程序时,我得到的错误是:bvc
未在范围内声明。它进一步告诉模板参数1和2无效。 (第1行)。此外,在包含bvc.push_back(bstemp)
的行中,我收到的错误是读取成员函数的无效使用。
答案 0 :(得分:13)
我觉得你正在使用预C ++ 11。
改变这个:
vector<bitset<8>> bvc;
到此:
vector<bitset<8> > bvc;
否则,>>
被解析为右移运算符。这在C ++ 11中是“固定的”。
答案 1 :(得分:4)
将vector<bitset<8>> bvc
更改为vector<bitset<8> > bvc
。注意空间。 >>
是运营商。
是的,非常讨厌语法问题。