我希望枚举[0,31]
的bool表示形式,并将其存储在tries
中以供日后使用。
static const int N = 5;
vector<bool> tries(N);
for(int i = 0;i < (2<<N); i++){
//can vector<bool> initialized by int?
//so I don't have to do bit operation
for (int t = 0; t < N; ++t)
{
tries[t] = i&(1UL<<t);
}
...
}
答案 0 :(得分:4)
std::vector< bool >
无法执行此操作,但std::bitset
可以。由于向量的大小在您的情况下是不变的,因此您应该使用std::bitset< 5 >
。只需使用您想要的非负整数值初始化它。
请注意bitset
不提供(或模仿)Container接口,但它确实提供operator []
返回位代理对象,如vector<bool>
。