string类型
1.定义和初始化string类型的一种新方法:
string s4(10,'c');
2.string类型的一行读入:
getline(cin,s)//return cin,换行符也被读入,但不被存入
3.string的size用法:
因为string的size函数返回的是一个
string::size_type类型的值,所以我们一般这么写
auto length=s.size();
4.literal和string的加法:
编译器会把literal自动转化成string,前提是加法的两边至少有一个string类型。因为历史原因,字符串literal和string是两种不同的类型。
string s="abc"+'\n';//错误!
5.新方法:基于范围的for语句(range for)//注意如果要修改字符串的值要使用引用形式
for(auto c :str)
expression...;
6.使用索引访问字符串某个字符注意事项:
索引必须是string::string_type类型,换而言之,必须是无符号整形。一般这么写:
for(decltype(s.size()) index=0;index<length;index++)
expression...;
vector类型
1.vector类型并不是类(class),而是一个类模板(class template)。编译器根据模板创建类或者函数的过程叫做实例化(instantiation).
2.vector能容纳绝大多数类型的对象作为其元素,但是不包括引用,因为引用不是对象。
3.在写vector类型的vector时,一般这么写:
vecor<vector<int> >//C++11标准允许了写在一起,但最好还是这么写
4.vector的定义和初始化