1.标准库类型string
(1)string类型必须首先包含string头文件,#include<string>;
(2)string s2(s1)(直接初始化)等同于string s2=s1;(拷贝初始化);
string s4(n,‘c’) 把s4初始化为由连续n个字符c组成的串;
(3)string对象的操作
正常的IO操作符读取字符串忽略开头空白,从第一个真正字符读起,直至遇见下一处空白;
getline函数可以保留输入时的空白符,读取一整行,直到遇到换行符为止;
size操作返回字符串长度,但返回类型是一个无符号类型string::size_type;
‘+’符号可以将两个字符串连接起来,但要注意‘+’运算符两侧的运算对象至少有一个是string;
(4)处理string对象中的字符
cctype头文件中包含多种处理string对象的方式,可以使用范围for语句对整个string对象进行访问与修改,在修改时,必须 把循环变量定义为引用类型,因为循环变量相当于一份拷贝,不设置为引用类型无法修改字符串内容。
2.标准库类型vector:#include<vector>
(1)引用不可以成为vector的元素,因为其不是对象;
可以用花括号初始化每一个值;
可以用括号指定元素个数或相同的元素值;
只能使用直接初始化,不可以使用拷贝初始化(vector之间的拷贝是可行的,但要保证类型相同);
(2) C++11 提供了列表初始化;
(3)向vector对象中添加元素,需使用push_back()成员函数;且不能使用范围for语句添加;
(4)vector同样具有size/empty/比较等操作,vector可用下标访问已有元素,但不能用下标添加元素;
(5)size()返回类型值size_type类型,可以用auto关键字自动接收;
3.迭代器(iterator):
(1)v.begin()和v.end()提供了访问v的第一个元素和尾元素的下一位置的功能;
(2)迭代器是一种类模板,https://blog.youkuaiyun.com/gogokongyin/article/details/51206225此网页简述了迭代器和指针的区别;
4.数组:
(1)数组的大小固定,和vector一样,不存在引用的数组;
(2)字符数组可以用字符串字面值进行初始化,但不能用数组的内容拷贝和赋值给其他数组;
(3)数组可以使用范围for和下标运算符来访问,并可以使用同vector类似的begin(a)和end(a)访问数组的首尾;