c ++如何制作矢量存储位集?

时间:2014-08-14 17:55:49

标签: c++ templates c++11 vector bitset

所以基本上我想将std::bitset<128>存储在std::vector<>

我试过这个:

std::vector<std::bitset<128>> myVector;

但编译器抱怨模板参数无效。我该如何解决这个问题,是否可以将此类型添加到typedef中供以后使用?

编辑:的确,我的编译器似乎使用C++03作为默认标准,我必须使用vector<bitset<128> >来处理当前设置。

1 个答案:

答案 0 :(得分:3)

是的,即使使用typedef也可以。

但请注意,您需要c ++ 11(-std = c ++ 11)才能在声明中使用两个右邻角括号

#include <vector>
#include <bitset>

int main() {
    typedef std::vector<std::bitset<128>> Bitset_vec;
    Bitset_vec v;
    return 0;
}

如果您不支持c ++ 11,请在括号之间添加空格:

typedef std::vector<std::bitset<128> > Bitset_vec;

Live example here(注意-std = c ++ 11选项)