STL::bitset
bitset: A bitset stores bits。大小通过参数传递,在编译时确定。可变的可参考 vector<bool>。
constructor
default:
integer value: 传入 unsigned long long val。
string:
C_string:
1 // constructing bitsets 2 #include <iostream> // std::cout 3 #include <string> // std::string 4 #include <bitset> // std::bitset 5 6 int main () 7 { 8 std::bitset<16> foo; 9 std::bitset<16> bar (0xfa2); 10 std::bitset<16> baz (std::string("0101111001")); 11 12 std::cout << "foo: " << foo << '\n'; // 0000000000000000 13 std::cout << "bar: " << bar << '\n'; // 0000111110100010 14 std::cout << "baz: " << baz << '\n'; // 0000000101111001 15 16 return 0; 17 }
Bit access
operator [ ]:
count: 返回 bieset 中 1 的个数。
size: 返回总的元素(0 or 1)的个数。
test: Returns whether the bit at position pos is set (i.e., whether it is one).
any: Returns whether any of the bits is set (i.e., whether at least one bit in thebitsetis set to one).
none(c++11): Returns whether none of the bits is set (i.e., whether all bits in thebitsethave a value of zero).
all(c++11): Returns whether all of the bits in thebitsetare set (to one).
Bit operations
set: all bits(1) 设置所有的 bit 为 1; single bit(2) 设置单个 bit 为 1。
reset: all bits(1) 设置所有 bit 为 0;single bit(2) 设置单个 bit 为 0。
flip:翻译为翻转, all bits(1) 翻转所有 bit ; single bit(2) 翻转单个 bit。
Bitset operations
to_string:
to_ulong:
to_ullong: