C++ 标准模板库 - <bitset>
简介
Bitset 表示 N 位的固定大小序列,并存储值 0 或 1。零表示值为假或位未设置,一个表示值为真或位已设置。 Bitset 类模拟节省空间的布尔值数组,其中每个元素仅占用一位。
当它模拟数组时,它的索引也从 0th 位置开始。 可以使用下标运算符访问 bitset 中的单个位。例如,要访问 bitset foo 的第一个元素,请使用 foo[0]。
Bitset 类提供构造函数来从整数和字符串创建位集。 bitset 的 size 在编译时是固定的。STL 提供了提供动态调整大小功能的 vector<bool> 类。
定义
下面是来自 <bitset> 头文件的 std::bitset 的定义
template <size_t N> class bitset;
参数
N − bitset 的大小。
成员类型
以下成员类型可以用作成员函数的参数或返回类型。
序号 | 成员类型 | 定义 |
---|---|---|
1 | reference | 代理类,表示对位的引用。 |
<bitset> 中的函数
下面是来自 <bitset> 标头的所有方法的列表。
构造函数
序号 | 方法 & 说明 |
---|---|
1 | bitset::bitset()
构造 Bitset 容器并将其初始化为零。 |
2 | bitset::bitset()
构造 bitset 容器并使用 val 的位值对其进行初始化。 |
3 | bitset::bitset()
从 C++ 字符串对象构造和初始化 Bitset 容器。 |
4 | bitset::bitset()
从 c 风格的字符串构造和初始化一个 bitset 容器。 |
成员类
序号 | 方法 & 说明 |
---|---|
1 | bitset::reference()
这是一个嵌入式类,它提供可以从 std::bitset::operator[] 返回的左值。 |
Bitset 运算符
序号 | 方法 & 说明 |
---|---|
1 | bitset::operator&=
对当前 bitset 对象执行按位与运算。 |
2 | bitset::operator|=
对当前 bitset 对象执行按位或运算。 |
3 | bitset::operator^=
对当前位集对象执行按位异或运算。 |
4 | bitset::operator<<=
对当前位集对象执行按位左 SHIFT 操作。 |
5 | bitset::operator>>=
对当前位集对象执行按位右 SHIFT 操作。 |
6 | bitset::operator~
对 bitset 执行按位非运算。 |
7 | bitset::operator<<
对 bitset 执行按位左 SHIFT 操作。 |
8 | bitset::operator>>
对 bitset 执行按位右 SHIFT 操作。 |
9 | bitset::operator==
测试两个 bitset 是否相等。 |
10 | bitset::operator!=
测试两个 bitset 是否相等。 |
11 | bitset::operator&
对 bitset 执行按位与运算。 |
12 | bitset::operator|
对 bitset 执行按位或运算。 |
13 | bitset::operator^
对 bitset 执行按位异或运算。 |
14 | bitset::operator>>
从 is 中提取最多 N 位并存储到另一个 Bitset x。 |
15 | bitset::operator>>
将位集 x 插入字符流 os。 |
成员函数
序号 | 方法 & 说明 |
---|---|
1 | bitset::all()
测试是否设置了 bitset 中的所有位。 |
2 | bitset::any()
测试是否设置了 bitset 中的至少一位。 |
3 | bitset::count()
计算 bitset 中设置的位数。 |
4 | bitset::flip() all bits
切换 bitset 中的所有位。 |
5 | bitset::flip() single bit
从 bitset 切换单个位。 |
6 | bitset::none()
测试所有位是否未设置。 |
7 | bitset::operator[] bool version
返回位置 pos 的位值。 |
8 | bitset::operator[] reference version
返回位置 pos 的位引用。 |
9 | bitset::reset() all bits
将 bitset 的所有位重置为零。 |
10 | bitset::reset() single bit
将 bitset 的单个位重置为零。 |
11 | bitset::set() all bits
将 bitset 中的所有位设置为 1。 |
12 | bitset::set() single bit 将 bitset 中的单个位设置为 one 或 zero。 |
13 | bitset::size()
报告 bitset 的大小。 |
14 | bitset::test()
测试是否设置了 Nth 位。 |
15 | bitset::to_string()
将 bitset 对象转换成字符串对象。 |
16 | bitset::to_ullong()
将 bitset 转换为无符号长整数。 |
17 | bitset::to_ulong()
将 bitset 转换为无符号长整数。 |
非成员函数
序号 | 方法 & 说明 |
---|---|
1 | bitset::hash()
根据提供的 bitset 返回哈希值。 |