C++细节2

在C++标准库中定义了内容丰富的抽象数据类型:string和vector,以及bitset。

string类型输入操作符

1、读取并忽略开头所有的空白操作符(空白,换行,制表符)

2、读取字符直到再次遇到空白字符

getline(std::cin, string)函数将istream作为返回值,string类型不含换行符。

任何***.size()的返回类型都为***::size_type类型(与机器无关),不能将size的返回值赋给int型变量,下标最好也使用::size_type。


所有的标准库容器都支持迭代器(iterator),只有少数部分的容器支持下标操作。


区别const ***iterator和***const_iterator。

前者迭代器不能改变,迭代器所指向的值能改变;后者迭代器能改变,迭代器指向的数值不能改变。


bitset

存储二进制位的有序集,每个位置可能包含0或1,头文件<bitset>。不是标准模板库。

必须初始化个数

1、用unsigned值初始化,将值转为二进制的位模式。bitset对象中的位集作为其副本。若bitset的长度大于unsigned long 值的二进制位数时,其余的高阶位置为0,;若小于~,则只使用其低阶位。

2、string对象初始化时,string对象直接表示为位模式。顺序从右向左。

3、返回类型和下标操作为size_t。

原文地址:https://www.cnblogs.com/zfluo/p/5131873.html