bitset总结

bitset b //尖括号内是长度,默认构造函数全部初始化为0
下标从0开始,因此下标是从0到n-1。以0位开始的位串是低阶位,以n-1位结束的位串是高阶位

bitset b; //b有n位,每位都为0
bitset b(u); //b是unsigned long型u的一个副本,不足补0
bitset b(s); //b是string对象s中含有的位串的副本,不足补0,注意从s的右边开始读取,即在s中从右到左是低阶到高阶,即b和s是左右颠倒的
bitset b(s, pos, n); //b是s中从位置pos开始的n个位的副本,不足补0

b.any() //检查b中是否存在置为1的二进制位,是则返回true
b.none() //检查b中是否不存在置为1的二进制位,是则返回true
b.count() //统计b中置为1的二进制位的个数
b.size() //b中二进制位的个数
b[pos] //访问b中在pos处的二进制位
b.test(pos) //检查b中在pos处的二进制位是否为1,是则返回true
b.set() //把b中所有二进制位都置为1
b.set(pos) //把b中在pos处的二进制位置为1,可以指定第二个参数,把pos处的值设为第二个参数,第二个参数默认1
b.reset() //把b中所有二进制位都置为0
b.reset(pos) //把b中在pos处的二进制位置为0
b.flip() //把b中所有二进制位逐位取反
b.flip(pos) //把b中在pos处的二进制位取反
b.to_ulong() //用b中同样的二进制位返回一个unsigned long int值
b.to_ullong() //用b中同样的二进制位返回一个unsigned long long值
b.to_string() //用b中同样的二进制位返回一个string
os << b //把b中的位集输出到os流,注意是输出来的顺序是从高阶到低阶,从右到左,和用string初始化正好一反

bitset支持位运算,直接贴函数原型了
member functions    
bitset& operator&= (const bitset& rhs) noexcept;
bitset& operator|= (const bitset& rhs) noexcept;
bitset& operator^= (const bitset& rhs) noexcept;
bitset& operator<<= (size_t pos) noexcept;
bitset& operator>>= (size_t pos) noexcept;
bitset operator~() const noexcept;
bitset operator<<(size_t pos) const noexcept;
bitset operator>>(size_t pos) const noexcept;
bool operator== (const bitset& rhs) const noexcept;
bool operator!= (const bitset& rhs) const noexcept;

non-member functions    
template
    bitset operator& (const bitset& lhs, const bitset& rhs) noexcept;
template
  bitset operator| (const bitset& lhs, const bitset& rhs) noexcept;
template
  bitset operator^ (const bitset& lhs, const bitset& rhs) noexcept;

你可能感兴趣的:(模板)