现在的位置: 首页 > 综合 > 正文

c++基础六 迭代器

2018年09月13日 ⁄ 综合 ⁄ 共 653字 ⁄ 字号 评论关闭

迭代器

迭代器是一种检查容器内元素并遍历元素的数据类型。迭代器类型提供了比下标操作更通用化的方法:所有的标准库容器都定义了相应的迭代器类型,而只有少数的容器支持下标操作。

容器的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长度的操作都会使已存在的迭代器失效。

抱歉!评论已关闭.