迭代器
迭代器是一种检查容器内元素并遍历元素的数据类型。迭代器类型提供了比下标操作更通用化的方法:所有的标准库容器都定义了相应的迭代器类型,而只有少数的容器支持下标操作。
容器的iterator类型
vector<int>::iterator iter;
begin返回的迭代器指向第一个元素
end返回的迭代器指向vector的“末端元素的下一个”
解引用操作符(*操作符)来访问迭代器所指向的元素
++iter迭代器向前移动一个位置
for (vector<int>::iterator iter = ivec.begin(); iter != ivec.end(); ++iter)
*iter = 0;
vector<int>::const_iterator
const_iterator类型。我们可以得到一个迭代器,它自身的值可以改变,但不能来改变其指向的元素的值。可以对迭代器进行自增以及使用解引用操作符来读取值,但不能对该元素值赋值。
const vector<int>::iterator
与此不同的是:const的iterator对象一旦被初始化,就不能改变它的值
如果两个迭代器指向同一个元素那么就相等(==)
iter + n n是size_type或difference_type类型
iter - n
iter1 - iter2 difference_type类型(signed类型)
vector<int>::iterator mid = vi.begin() +vi.size()/2;
任何改变vector长度的操作都会使已存在的迭代器失效。