C++ 库 - <位集>


介绍

Bitset 表示N位的固定大小序列,并存储值 0 或 1。零表示值为假或位未设置,1 表示值为真或位已设置。Bitset 类模拟节省空间的布尔值数组,其中每个元素仅占用一位。

由于它模拟数组,因此它的索引也从第 0位置开始。可以使用下标运算符访问位集中的各个位。例如,要访问位集foo的第一个元素,请使用foo[0]

Bitset 类提供了从整数和字符串创建位集的构造函数。位集的大小在编译时是固定的STL 提供了vector<bool>类,该类提供动态调整大小功能。

定义

以下是 <bitset> 头文件中 std::bitset 的定义

template <size_t N> class bitset;

参数

N - 位集的大小。

会员类型

以下成员类型可以用作成员函数的参数或返回类型。

先生。 会员类型 定义
1 参考 代表对位的引用的代理类。

<bitset> 中的函数

下面是 <bitset> 标头中所有方法的列表。

构造函数

先生。 方法及说明
1 位集::位集()

构造位集容器并将其初始化为零。

2 位集::位集()

构造 bitset 容器并使用val的位值对其进行初始化。

3 位集::位集()

从 C++ 字符串对象构造并初始化一个位集容器。

4 位集::位集()

从 c 样式字符串构造并初始化一个位集容器。

会员等级

先生。 方法及说明
1 位集::参考()

这是嵌入式类,它提供可以从std::bitset::operator[]返回的左值。

位集运算符

先生。 方法及说明
1 位集::运算符&=

对当前位集对象执行按位与运算。

2 位集::运算符|=

对当前位集对象执行按位或运算。

3 位集::运算符^=

对当前位集对象执行按位异或运算。

4 位集::运算符<<=

对当前位集对象执行按位左移操作。

5 位集::运算符>>=

对当前位集对象执行按位右移操作。

6 位集::运算符~

对位集执行按位 NOT 运算。

7 位集::运算符<<

对位集执行按位左移操作。

8 位集::运算符>>

对位集执行按位右移操作。

9 位集::运算符==

测试两个位集是否相等。

10 位集::运算符!=

测试两个位集是否相等。

11 位集::运算符&

对位集执行按位与运算。

12 位集::运算符|

对位集执行按位或运算。

13 位集::运算符^

对位集执行按位异或运算。

14 位集::运算符>>

从is中提取最多N位并将其存储到另一个位集x中。

15 位集::运算符>>

将位集x插入字符流os

会员功能

先生。 方法及说明
1 位集::全部()

测试 bitset 中的所有位是否已设置。

2 位集::任意()

测试是否设置了 bitset 中的至少一位。

3 位集::计数()

计算 bitset 中设置的位数。

4 bitset::flip() 所有位

切换位集中的所有位。

5 bitset::flip() 单个位

切换位集中的单个位。

6 位集::无()

测试所有位是否未设置。

7 bitset::operator[] 布尔版本

返回位置pos处的位值。

8 bitset::operator[] 参考版本

返回位置pos处的位的引用。

9 bitset::reset() 所有位

将 bitset 的所有位重置为零。

10 bitset::reset() 单个位

将 bitset 的单个位重置为零。

11 bitset::set() 所有位

将 bitset 中的所有位设置为 1。

12 bitset::set() 单个位

将 bitset 中的单个位设置为10

13 位集::大小()

报告位集的大小。

14 位集::测试()

测试第 N 位是否设置。

15 位集::to_string()

将位集对象转换为字符串对象。

16 位集::to_ullong()

将 bitset 转换为 unsigned long long。

17 号 位集::to_ulong()

将 bitset 转换为 unsigned long。

非成员函数

先生。 方法及说明
1 位集::哈希()

根据提供的位集返回哈希值。