August 2021
Intermediate to advanced
450 pages
5h 35m
Chinese
系统的很多属性(例如输入数据流的状态)都可以表示为一组表示二元状态的标记,像
好/坏、真/假、开/关等。C++通过整数上的位运算(参见1.4节)为这样一种小规模标记的概念提供了高效支持。类bitset<N>提供了N位序列[0:N)上的操作,从而泛化了这一概念,其中N在编译时就已知。对于无法放入一个long long int中的位集合,使用bitset比直接使用整数方便得多。即使对于较小的位集合,bitset通常也进行了优化。如果你为每一位命名而不是对它们编号,则应该使用set(参见11.4节)或者枚举(参见2.5节)。
我们可以用整数或者字符串来初始化bitset:
常用位运算符(参见1.4节)以及左移和右移运算符(<<和>>)都能用在bitset上:
其中,移位操作(此处是<<)会“移进”0。
函数to_ullong()和to_string()提供了与构造函数相反的操作。例如,我们可以输出一个int值的二进制表示:
这段代码将二进制表示的1和0从左至右地打印出来,最高位在最左边,则实参123的输出结果是: ...
Read now
Unlock full access