是否可以创建一个位集矢量?

uye*_*tch 6 c++ vector bitset

我试图在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中被"修复"了.

  • 如果有人对进一步的读数感兴趣,这个词被称为**Maximal munch**. (2认同)

lit*_*adv 5

更改vector<bitset<8>> bvcvector<bitset<8> > bvc。注意空格。>>是一个运算符。

是的,非常讨厌的语法问题。