标准库string类型
string s;
cin >> s; //读取并忽略开头所有的空白字符(空格、制表符、换行符等)。读取字符直至再次遇到空白字符,读取终止。
string::size_type类型,从逻辑上讲,size()成员函数似乎应该返回整型数值,但事实上,size操作返回的是string::size_type类型的值。
任何存储string的size操作结果的变量必须为string::size_type类型,不要把size的返回值赋给一个int变量。
虽然不确定string::size_type的具体类型,但是它是unsigned型,unsigned型所能表示的最大正数是signed型的两倍,然而int默认是带符号的signed型。
字符串拼接时,两个string对象可以直接相加,和字符串字面值连接的时候需要注意,+操作符的左右操作数必须至少有一个是string类型的:
string s1 = "hello";
string s2 = "world";
string s3 = s1 + ", "; //合法,此时s3 = "hello, "
string s4 = "hello" + ", "; //不合法,+两边的操作数没有string类型
string s5 = s1 + ", " + "world"; //合法,s1 + ", "返回一个string,然后再与"world"连接
标准库vector类型
vector称为容器,是一个类模板,不是一种数据类型,它可以用来定义任意多种数据类型,vector类型中的每一种都指定了其保存元素的类型。vector和vector都是数据类型。
使用size_type类型时,必须先指出该类型是在哪里定义的:vector::size_type
迭代器
C++倾向于使用迭代器而不是下标来访问容器的元素。