bitset总结

来源:互联网 发布:seo新手教程 编辑:程序博客网 时间:2024/05/25 01:35
bitset<n> b //尖括号内是长度,默认构造函数全部初始化为0下标从0开始,因此下标是从0到n-1。以0位开始的位串是低阶位,以n-1位结束的位串是高阶位bitset<n> b; //b有n位,每位都为0bitset<n> b(u); //b是unsigned long型u的一个副本,不足补0bitset<n> b(s); //b是string对象s中含有的位串的副本,不足补0,注意从s的右边开始读取,即在s中从右到左是低阶到高阶,即b和s是左右颠倒的bitset<n> b(s, pos, n); //b是s中从位置pos开始的n个位的副本,不足补0b.any() //检查b中是否存在置为1的二进制位,是则返回trueb.none() //检查b中是否不存在置为1的二进制位,是则返回trueb.count() //统计b中置为1的二进制位的个数b.size() //b中二进制位的个数b[pos] //访问b中在pos处的二进制位b.test(pos) //检查b中在pos处的二进制位是否为1,是则返回trueb.set() //把b中所有二进制位都置为1b.set(pos) //把b中在pos处的二进制位置为1,可以指定第二个参数,把pos处的值设为第二个参数,第二个参数默认1b.reset() //把b中所有二进制位都置为0b.reset(pos) //把b中在pos处的二进制位置为0b.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中同样的二进制位返回一个stringos << 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<size_t N>    bitset<N> operator& (const bitset<N>& lhs, const bitset<N>& rhs) noexcept;template<size_t N>  bitset<N> operator| (const bitset<N>& lhs, const bitset<N>& rhs) noexcept;template<size_t N>  bitset<N> operator^ (const bitset<N>& lhs, const bitset<N>& rhs) noexcept;