STL之iterator(迭代器)
来源:互联网 发布:重庆北碚网络花店 编辑:程序博客网 时间:2024/05/20 07:16
3.迭代器简介
除了使用下标来访问vector对象的元素外,标准库还提供了访问元素的方法:使用迭代器。迭代器是一种检查容器内元素并且遍历元素的数据类型。
百科释义:
迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址。迭代器修改了常规指针的接口,所谓迭代器是一种概念上的抽象:那些行为上像迭代器的东西都可以叫做迭代器。
1.容器的iterator类型
每种容器类型都定义了自己的迭代器类型,如vector:
vector<int> ::iterator iter;变量名为iter,可以读写vector中的元素。
2.begin和end操作
每种容器都定义了一队命名为begin和end的函数,用于返回迭代器。如果容器中有元素的话,由begin返回的元素指向第一个元素。
vector<int>::iterator iter=v.begin();
若v不为空,iter指向v[0]。
由end返回的迭代器指向最后一个元素的下一个,不存在,若v为空,begin和end返回的相同。
*iter;返回迭代器iter所指元素的引用
++iter即将迭代器向前移动一个位置(相反的--iter)
==和!=操作符来比较两个迭代器,若两个迭代器指向同一个元素,则它们相等,否则不想等。
举例:
#include <iostream>#include<vector>using namespace std;int main (){<span style="white-space:pre"></span>vector <int>p;<span style="white-space:pre"></span>p.push_back(1);<span style="white-space:pre"></span>p.push_back(2);<span style="white-space:pre"></span>p.push_back(3);<span style="white-space:pre"></span>p.push_back(5);<span style="white-space:pre"></span>p.push_back(6);<span style="white-space:pre"></span>auto *ite=p.begin();//auto也可写为vector <int>::iterator<span style="white-space:pre"></span>while(ite!=p.end())<span style="white-space:pre"></span>cout<<*ite++<<endl;<span style="white-space:pre"></span>return 0;}
我们认定某个类型是迭代器当且仅当它支持一套操作,这套操作使得我们能访问容器的元素或者从一个元素移动到另外一个元素。
0 0
- STL之iterator(迭代器)
- stl之迭代器(iterator)
- C++ stl之迭代器(iterator)
- 设计模式之iterator模式到STL中iterator迭代器
- STL学习笔记之迭代器--iterator
- STL源码剖析之迭代器Iterator
- STL之iterator
- STL之iterator
- STL之Iterator
- STL的迭代器--Iterator
- STL的迭代器--Iterator
- [STL基础]Iterator迭代器
- STL iterator(迭代器)
- STL Iterator 迭代器
- STL迭代器(iterator)
- STL----iterator 迭代器
- STL 之 iterator traits 备忘
- STL之Input & Output Iterator
- OC面向对象—继承
- UVA 11488 Hyper Prefix Sets (Trie)
- C++笔试题深度分析 第三波 上
- Java语言基础
- 【计算几何】 POJ 1981 Circle and Points
- STL之iterator(迭代器)
- Select语句的基本操作
- 【Unity3D教程宝典之Shader篇:基础讲学习方法技巧 】
- C#泛型详解
- 2014.10.4【大逃亡】
- OC面向对象—多态
- NYOJ868--路线计算
- 中断来10万次后不来了
- Knight Moves(第一次写的双向优先BFS)