总结
某些对vector对象的操作会使迭代器失效
(1)已知的一个限制是不能在范围for循环中向vector对象添加元素
(2)另一个限制是任何一种可能改变vector对象的操作比如push-back,都会使该vector对象的迭代器失效。
it -> num和 (*it).num表达意思一样 都是解引用it,调用对象的num成员
cbegin 和cend
auto it3 = v.cbegin(); //it3的类型是vector<int>::const_iterator
iterator和const_iterator
vector<int>::iterator it //it能读写vector<int>的元素
vector<int>::const_iterator it2 //it2只能读vector<int>的元素
string::iterator it3 //it3能读写string对象中的字符
string::const_iterator it4 //it4只能能读写string对象中的字符
练习3.21