容器的通用访问机制 迭代器。
迭代器的有效范围是 容器内容范围和容器结尾元素的下一个位置,其余都是无效的
从上图中可以看出一个迭代器的有效范围,当然不是所有的容器都是线性存储的,这里只做一个示意。
1. 使用迭代器
vector<int> vecInt = {1,2,3,4,5,6};
for (auto it = vecInt.begin(); it != vecInt.end(); ++it)
{
*it = *it * 2;
}
在上面的代码中,使用到了迭代器的头尾获取(begin()、end() ),迭代器的值提取(it),迭代器的移动(++it),以及修改迭代器所包含的值的方法(*it = *it 2)。
2.迭代器的类型
vector<int>::iterator
vector<int>::const_iterator // 迭代器是可以移动的,但是所包含的内容不可改变