我想枚举bool表示形式[0,31]并将其存储以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);
}
...
}
Run Code Online (Sandbox Code Playgroud)
std::vector< bool >无法做到这一点,但std::bitset可以做到。由于向量的大小在您的情况下是恒定的,因此您应该使用std::bitset< 5 >。只需使用所需的非负整数值对其进行初始化。
请注意,bitset它不提供(或模仿)Container接口,但确实提供了operator []返回位代理对象,例如vector<bool>。
| 归档时间: |
|
| 查看次数: |
767 次 |
| 最近记录: |