C++迭代器 iterator
转载:http://www.cnblogs.com/yc_sunniwell/archive/2010/06/25/1764934.html
首先看一下那些容器不支持迭代器
容器 支持的迭代器类别 容器 支持的迭代器类别 容器 支持的迭代器类别
vector 随机访问 deque 随机访问 list 双向
set 双向 multiset 双向 map 双向
multimap 双向 stack 不支持 queue 不支持
(1) 每种容器类型都定义了自己的迭代器类型,如vector:
vector<int>::iterator iter;这条语句定义了一个名为iter的变量,它的数据类型是由vector<int>定义的iterator类型。
使用迭代器读取vector中的每一个元素:
for(vector<int>::iterator iter=ivec.begin();iter!=ivec.end();++iter) { *iter=2; //使用 * 访问迭代器所指向的元素 }
for(vector<int>::const_iteratorciter=ivec.begin();citer!=ivec.end();citer++) { cout<<*citer; //*citer=3; error }
const_iterator:
只能读取容器中的元素,而不能修改。
一个很典型使用vector的STL程式:
#include <vector> #include <iostream> using namespace std; int main() { vector<int> ivec; ivec.push_back(1); ivec.push_back(2); ivec.push_back(3); ivec.push_back(4); for(vector<int>::iterator iter = ivec.begin();1. iter != ivec.end(); ++iter) { cout << *iter << endl; } }

浙公网安备 33010602011771号