Cpp Standard Library 简明教程

C++ Library - <bitset>

Introduction

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

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

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

Definition

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

template <size_t N> class bitset;

Parameters

N − 位集的大小。

Member types

以下成员类型可作为参数或返回类型,由成员函数使用。

Sr.No.

Member types

Definition

1

reference

表示对位的引用的代理类。

Functions from <bitset>

以下是 <bitset> 头文件中所有方法的列表。

Constructors

Sr.No.

Method & Description

1

bitset::bitset() 构造位集容器并将其初始化为零。

2

bitset::bitset() 构造位集容器并将其用 val 的位值进行初始化。

3

bitset::bitset() 用 C++ string 对象构造并初始化位集容器。

4

bitset::bitset() 用 c 语言风格的字符串构造并初始化位集容器。

Member class

Sr.No.

Method & Description

1

bitset::reference() 这是提供可从 std::bitset::operator[] 返回的 l 值的嵌入类。

Bitset operators

Sr.No.

Method & Description

1

bitset::operator&= 对当前位集对象执行按位 AND 运算。

2

link:../cpp_standard_library/cpp_bitset_operator_bitwise_or_self.html[bitset::operator

=]对当前位集对象执行按位 OR 运算。

3

bitset::operator^= 对当前位集对象执行按位 XOR 运算。

4

bitset::operator<⇐ 对当前位集对象执行按位左 SHIFT 运算。

5

bitset::operator>>= 对当前位集对象执行按位右 SHIFT 运算。

6

bitset::operator~ 对位集执行按位 NOT 运算。

7

bitset::operator<< 对位集执行按位左 SHIFT 运算。

8

bitset::operator>> 对位集执行按位右 SHIFT 运算。

9

bitset::operator== 测试两个位集是否相等。

10

bitset::operator!= 测试两个位集是否相等。

11

bitset::operator& 对位集执行按位 AND 运算。

12

link:../cpp_standard_library/cpp_bitset_operator_bitwise_or.html[bitset::operator

]对位集执行按位 OR 运算。

13

../cpp_standard_library/cpp_bitset_operator_bitwise_xor.html[bitset::operator^]Performs bitwise XOR operation on bitset.

14

bitset::operator>> 从 is 中提取最多 N 个位,并存储到另一个位集 x 中。

15

bitset::operator>> 将位集 x 插入到字符流 os 中。

Member functions

Sr.No.

Method & Description

1

bitset::all() 测试位集中是否设置了所有位。

2

bitset::any() 测试位集中是否至少设置了一个位。

3

bitset::count() 统计位集中设置的位数。

4

bitset::flip() all bits从bitset中切换所有位。

5

bitset::flip() single bit从bitset中切换单个位。

6

bitset::none() 测试是否所有位均未设置。

7

bitset::operator[] bool版本返回位置pos处的位值。

8

bitset::operator[] 引用版本返回位置pos上的位引用。

9

bitset::reset() all bits将bitset的所有位重置为0。

10

bitset::reset() single bit将bitset的单个位重置为0。

11

bitset::set() all bits将bitset的所有位设为1。

12

bitset::set() single bit将bitset的单个位设为1或0。

13

bitset::size() 报告bitset的大小。

14

bitset::test() 测试第N位是否已设置。

15

bitset::to_string() 将bitset对象转换为字符串对象。

16

bitset::to_ullong() 将bitset转换为无符号长长整数。

17

bitset::to_ulong() 将bitset转换为无符号长整数。

Non-member functions

Sr.No.

Method & Description

1

bitset::hash() 基于提供的bitset返回哈希值。