"C++ Primer" 读书笔记 第三章 标准库类型
3.2 标准库string类型
string的常用构造函数:
默认构造函数(初始化为空string);
string s2(s1); // 拷贝s1的内容
string s3("Hello);
string s4(3, '6'); // "666"
注意!string与字符串字面值不是同一种类型;
cin >> s; // 从标准输入对象读取string到s中,注意
- 读取将忽略开头所有的空白字符
- 开始读取后遇到任何空白字符则终止
通常利用while(cin >> input){ ; }实现读入未知数目的输入
cin>>input语句本身将返回一个istream对象,如果输入流cin是有效的,则继续循环;
(如果有读取包含空格和制表符的整行文本的需求,则使用getline函数)
string的size()成员返回的是什么类型?
是size_type类型,引入配套类型使得库类型的使用与机器无关,并且保证不会有某个string的size()会溢出这个值
形如<cype.h>与<cctype>这样的头文件名的区别。
标准库vector类型,动态数组
是一种容器,能够存放任意类型的元素;
vector是类模板,vector<int> 才是一种数据类型;
注意,我们仅能对已经存在的下标位置进行访问,否则下标越界错误!
利用迭代器同样可以进行元素访问,每一种容器都有各自的迭代器配套类型;
不同容器迭代器的操作是通用的。
const_iterator类型,只能读取不能修改;
特别注意,在vector的长度更改后,原来的iterator就失效了。(如何理解?)