C++ 迭代器简介
来源:互联网 发布:python画图pylab 编辑:程序博客网 时间:2024/05/02 04:59
标准库为每一种标准容器定义了一种迭代器类型,用于访问或修改元素的值。在C++中,使用迭代器比使用下标操作更普遍。
1、容器的iterator类型
vector::iterator iter;
2、begin和end
每种容器都定义了begin和end函数,begin函数指向容器里的第一个元素,end指向容器末端元素的下一个,即超出末端迭代器的下一个。通过begin和end可以对迭代器进行初始化。
vector::iterator iter=ivec.begin()
3、运算和解引用运算符
迭代器定义了一些操作来获取迭代器所指向的元素,可以使用解引用运算符获取迭代器指向的元素:
*iter=0; //既可以赋值也可以读取
其他运算:++ == !=
4、程序示例
用迭代器编写循环是非常典型的做法:
#include <vector>using namespace std;int main(){ vector<int> ivec(10); for(vector<int>::iterator iter=ivec.begin(); iter!=ivec.end();++iter) *iter = 0; return 0;}
5、const_iterator
除iterator之外,每种容器类型还定义了const_iterator类型,const_iterator智能用于读取元素值,不能为元素赋值
注意区分const_iterator和const的iterator类型:
const_iterator: 不能改变元素值,用来读取容器的元素,可以指向不同的元素
const的iterator:可以改变元素的值,相当于改变iterator指向的值,但是只能指向一个元素。
6、迭代器的算数操作
iter+/-n:
产生一个新的迭代器指向容器的元素
iter1+/-iter2:
计算两个迭代器对象的距离,结果为difference_type的signed类型
可以用迭代器算术操作来移动迭代器直接指向某个元素: vector<int>::iterator mid=ivec.begin()+ivec.size()/2;
注意:任何改变vector长度的操作都会使已存在的迭代器失效,如push_back()
- C++——迭代器简介
- 【C#】简介
- C 简介
- C 简介
- 【C#】简介
- 【C语言】C语言简介
- 函数简介(C)
- C/C++库简介。。。
- C语言指针简介
- c语言指针简介
- C Cover工具简介
- C++/CLI简介
- C指针简介
- C/C++库简介
- Pelles C编译器简介
- Object-C 简介
- LINQ 查询简介(C#)
- usb-skeleton.c简介
- Android textview 同时改变字符串中部分字体的颜色与大小
- (2) nginx信号量
- 四个基本方程的证明
- Mybatis MapperScannerConfigurer 自动扫描 将Mapper接口生成代理注入到Spring -
- oracle11g客户端如何完全卸载
- C++ 迭代器简介
- Lua语言模型 与 Redis应用
- 赵元任早年自传 - 笔记
- 反向传播算法
- 嵌入式系统学习(二)-S5P4418芯片启动模式
- C/C++内存管理详解[转载]
- 为什么说反向传播算法很高效?
- Unity插件NGUI学习笔记(二)
- fragment添加的方法(showAndHide)