按照迭代器的功能强弱,可以把迭代器分为以下几种类型: 输入迭代器 (input iterator) 输出迭代器 (output iterator) 前向迭代器 (forward iterator) 双向迭代器 (bidirectional iterator) 随机访问迭代器( random-access iterator) 迭代器的通用功能 上面有5种类型的迭代器,我们先来了解一下他们的一些通用功能 比较两...
v.push_back(n);//push_back成员函数在vector容器尾部添加一个元素vector<int>::iterator i;//定义正向迭代器for(i = v.begin(); i != v.end(); ++i) {//用迭代器遍历容器cout << *i <<" ";//*i 就是迭代器i指向的元素*i *=2;//每个元素变为原来的2倍} cout << endl;//用反向迭代...
常量正向迭代器,定义方法如下: 容器类名::const__iterator 迭代器名; 1. 反向迭代器,定义方法如下: 容器类名::reverse_iterator 迭代器名; 1. 常量反向迭代器,定义方法如下: 容器类名::const_reverse_iterator 迭代器名; 1. 2.迭代器用法示例 通过迭代器可以读取它指向的元素,迭代器名就表示迭代器指向的...
vector<int>::iterator iter;这条语句定义了一个名为iter的变量,它的数据类型是由vector<int>定义的iterator类型。 (2) 使用迭代器读取vector中的每一个元素: vector<int> ivec(10,1); for(vector<int>::iterator iter=ivec.begin();iter!=ivec.end();++iter) { *iter=2; //使用 * 访问迭代器所...
2.外部迭代器:通常是独立于容器的接口,由调用者控制遍历过程,需要显示地访问容器对象中的元素,例如std::forward_iterator_tag等。 代码样例: Demo1:内部迭代器 #include<iostream>#include<vector>intmain(){std::vector<int>vec={1,2,3,4,5};for(autoit=vec.begin();it!=vec.end();++it){std::cout...
插入迭代器(insert iterator):这些迭代器被绑定到一个容器上,可用来向容器插入元素 流迭代器(stream iterator):这些迭代器被绑定到输入或输出流上,可用来遍历所有关联的IO流 反向迭代器(reverse iterator):这些迭代器向后而不是向前移动。除了forward_list容器之外的标准库容器都有反向迭代器 ...
要访问顺序容器和关联容器中的元素,需要通过迭代器(iterator)进行。迭代器是一个变量,相当于容器和操纵容器的算法之间的中介。迭代器可以指向容器中的某个元素,通过迭代器就可以读写它指向的元素,从这一点上看,迭代器和指针类似。 迭代器按照定义方式分成以下四种: 正向迭代器,定义方法如下: 容器类名::iterator...
容器类名::const_iterator 迭代器名; 反向迭代器,定义方法如下: 容器类名::reverse_iterator 迭代器名; 常量反向迭代器,定义方法如下: 容器类名::const_reverse_iterator 迭代器名; 迭代器用法示例 通过迭代器可以读取它指向的元素,*迭代器名就表示迭代器指向的元素。通过非常量迭代器还能修改其指向的元素。
C++ STL提供了丰富的标准容器(Container)对象(vector,array,queue,list,set,unordered_map/set…),让我们可以根据需求选择不同的容器管理各种类型的数据。说到使用容器,不用迭代器(iterator)是不可能的,所有的容器对象都根据容器的特点都提供了类似但不同的iterator,用于访问容器中的数据。