我试图在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;
}
Run Code Online (Sandbox Code Playgroud)
当我尝试编译程序时,我得到的错误是读取bvc未在范围中声明的内容.它进一步告诉模板参数1和2无效.(第1行).另外,在包含的行中bvc.push_back(bstemp),我收到的错误是读取成员函数的无效使用.
Mys*_*ial 14
我有一种感觉,你正在使用pre C++ 11.
改变这个:
vector<bitset<8>> bvc;
Run Code Online (Sandbox Code Playgroud)
对此:
vector<bitset<8> > bvc;
Run Code Online (Sandbox Code Playgroud)
否则,将>>其解析为右移运算符.这在C++ 11中被"修复"了.