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

时间:2012-01-21 10:40:19

标签: 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;
    }

当我尝试编译程序时,我得到的错误是:bvc未在范围内声明。它进一步告诉模板参数1和2无效。 (第1行)。此外,在包含bvc.push_back(bstemp)的行中,我收到的错误是读取成员函数的无效使用。

2 个答案:

答案 0 :(得分:13)

我觉得你正在使用预C ++ 11。

改变这个:

vector<bitset<8>> bvc;

到此:

vector<bitset<8> > bvc;

否则,>>被解析为右移运算符。这在C ++ 11中是“固定的”。

答案 1 :(得分:4)

vector<bitset<8>> bvc更改为vector<bitset<8> > bvc。注意空间。 >>是运营商。

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