❤️️
大家好!我是曾续缘
欢迎关注
❤️点赞 收藏 ⭐再看,养成习惯
做人要有梦想,但更重要的是要有行动。
C++ STL 中的 bitset
是一种用于处理二进制位的容器类型。下面列出了 bitset
类中所有可用的函数:
bitset()
:默认构造函数,创建一个长度为 N
的位集合,所有位都被设为 0。bitset(unsigned long val)
:用一个 unsigned long
类型的整数初始化位集合,最高位映射到位集合上的第 N-1 位(N 为位集合的长度)。bitset(unsigned long long val)
:用一个 unsigned long long
类型的整数初始化位集合,最高位映射到位集合上的第 N-1 位(N 为位集合的长度)。bitset(const string& str, size_t pos = 0, size_t n = npos, char zero = '0', char one = '1')
:用给定的字符串初始化位集合,将字符串中的字符 zero 映射到 0,将字符 one 映射到 1。bool any() const
:检查是否存在某个位被设为 1,如果存在,则返回 true,否则返回 false。bool all() const
:检查是否所有的位都被设为 1,如果是,则返回 true,否则返回 false。bool none() const
:检查是否没有任何一位被设为 1,如果是,则返回 true,否则返回 false。size_t count() const
:返回当前位集合中的 1 的个数。constexpr size_t size() const noexcept;
:返回当前位集合的长度。bitset operator~() const
:按位取反,返回一个新的 bitset
对象,其每个位的值都是取反后的结果。bitset& operator&=(const bitset& rhs)
:按位与,并将结果保存到调用对象中。bitset& operator|=(const bitset& rhs)
:按位或,并将结果保存到调用对象中。bitset& operator^=(const bitset& rhs)
:按位异或,并将结果保存到调用对象中。bitset& operator<<=(size_t pos)
:将整个位集合左移 pos 位。如果 pos 大于等于 N,则结果为全 0。bitset& operator>>=(size_t pos)
:将整个位集合右移 pos 位。如果 pos 大于等于 N,则结果为全 0。bitset& set()
:将所有的位都设为 1。bitset& set(size_t pos, bool val = true)
:将位集合上的第 pos 位设为 val。bitset& reset()
:将所有的位都设为 0。bitset& reset(size_t pos)
:将位集合上的第 pos 位设为 0。bitset& flip()
:对所有的位按位取反。bitset& flip(size_t pos)
:将位集合上的第 pos 位按位取反。unsigned long to_ulong() const
:将位集合转换为一个 unsigned long 类型的数值,如果超出范围,则会抛出 std::overflow_error 异常。unsigned long long to_ullong() const
:将位集合转换为一个 unsigned long long 类型的数值,如果超出范围,则会抛出 std::overflow_error 异常。reference operator[](size_t pos)
:返回位集合中第 pos 位的引用。bool operator[](size_t pos) const
:返回位集合中第 pos 位的值。string to_string(char zero = '0', char one = '1') const
:将位集合转换为一个字符串,将字符 zero 映射到 0,将字符 one 映射到 1。