3.2
1.读写string对象的方法:
(1)cin>>s; 自动忽略开头的空白,到遇到下一个空白为止;
(2)getline(cin,line); 遇到换行符就结束;
2.size()函数返回一个无符号整数,不能与int混用,返回值类型为string::size_type。
3.字面值和string对象相加,加号(+)的两侧的运算对象至少有一个是string。
3.3
1.vector对象只能对确定已存在的对象进行下标操作,不能用下标添加元素。
vector.push_back() --用于在vector尾部添加新元素
3.4
1.迭代器类型:
(1)iterator:可读可写
(2)const_iterator:只能读不能写
如果对象是一个常量,只能使用const_iterator;如果对象不是常量,两个都可以。
2.begin和end【尾后迭代器】返回的具体类型由对象是否为常量决定;cbegin和cend不管对象是否为常量返回值都是const_iterator。
3.箭头运算符(->) it->mem等价于(*it).mem【it是迭代器】
4.凡是使用了迭代器的循环体,都不要向迭代器所属的容器添加元素。任何一种可能改变vector对象容量的操作(比如,push_back)都会使该vector对象的迭代器失效。
3.5
1.用字符串字面值对字符数组初始化时,一定要注意字符串字面值的结尾处有一个空字符。
2.数组的指针,指针的数组
int *ptrs[10]; //ptrs是含有10个整型指针的数组
int (*Parray)[10]=&arr; //Parray指向一个含有10个整数的数组
int (&arrRef)[10]=arr; //arrRef引用一个含有10个整数的数组
【由内向外阅读数组的名字】
3.数组下标的类型:size_t