【C++】std::bitset のoperator[]
使ってみて少し迷いました
#include <bitset> #include <vector> #include <iostream> int main() { std::bitset<4> bit(0b1000); std::vector<int> v = {1,0,0,0}; if(v[0] == bit[0]) std::cout << "true" << std::endl; else std::cout << "false" << std::endl; }
false
違和感があったところ
std::vector の場合 [0...n] std::bitset の場合 [n...0]
ビットシフトと考えれば問題解決
if(bit[x]) { ... } ↓ 同じ if((bit>>x)&1) { ... }