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。