C++Primer阅读笔记-第3章-标准库类型 迭代器
2012-11-13 15:36 kennyMc 阅读(295) 评论(0) 收藏 举报迭代器是一种检查容器内元素并遍历元素的数据类型,标准库为每一种标准容器定义了一种迭代器类型。
vector迭代器类型的定义:vector<int>::iterator iter;
这里iter的数据类型是由vector<int>定义的iterator类型。
begin和end操作
begin返回迭代器指向的第一个元素,end返回迭代器指向vector对象末端元素的下一个,表明它指向了一
个不存在的元素。
迭代器通过使用解引用操作符来访问迭代器所指向的元素。
迭代器通过自增操作移动到下一个元素。
注意:不能对end操作符返回的迭代器进行解引用或者自增。
#include<iostream> #include<vector> using std::cout; using std::endl; using std::cin; using std::vector; int main() { vector<int> v(10,0); for(vector<int>::size_type si=0;si!=v.size();si++) { v[si]=si; } for(vector<int>::iterator iter=v.begin();iter!=v.end();iter++) { cout<<(*iter)<<endl; } system("pause"); return 0; }
const_iterator类型只能用于读取容器内的元素,无法修改。
迭代器的算术操作
iter+n或者iter-n产生的距离类型为difference_type,加减后的值必须指向vector对象的某个元素。
vector<int> v(10,0); for(vector<int>::size_type si=0;si!=v.size();si++) { v[si]=si; } vector<int>::iterator iter=v.begin(); iter+=14; cout<<*iter<<endl;
浙公网安备 33010602011771号