C++的迭代器和指针
来源:互联网 发布:windows音频设备隔离 编辑:程序博客网 时间:2024/05/03 12:59
1:首先迭代器是一种专门为访问容器而设计的一种数据类型,同时也是一种数据结构,类模板,他提供来比下标操作更为通用的 方法,对所有的容器有适用;
2:每个容器都有自己的iterator类型,如vector<int>::iterator
3:begin和end操作,begin()返回迭代器的第一个元素,end()返回容器最后一个元素的下一个元素,如果vector为空,则begin返回的迭代器于end相同。
4:迭代器的使用类似于指针,可以经行解引用,加减,相等等操作
5:迭代器的类型:const_iterator和const iterator
const_iterator是一个指向常容器的迭代器,自身是个变量,但是指向的直不能改变;
const iteratro是一个指向容器的常迭代器,自身是个常量,一旦赋值,不能改变其指向的直;
6:迭代器和指针的差别
指针其实是狭义的迭代器,迭代器是指针的抽象。指针用于指向单个对象,而迭代器用于访问容器内的元素。
迭代器是具有类似指针行为的class template。也就是重载了operator-> operator* operator++等操作符的类模板。
由于指针的使用可能产生不可预料的过程,所以在现代的C++中采用vecator和interator代替一般的数组,string类型代替一般的字符串。C++中更偏向于使用容器类。
7:地雷:任何改变vector长度的操作都会使已存在的迭代器失败。例如,在调用push_back之后,就不能再信赖指向vector的迭代器的值了
2:每个容器都有自己的iterator类型,如vector<int>::iterator
3:begin和end操作,begin()返回迭代器的第一个元素,end()返回容器最后一个元素的下一个元素,如果vector为空,则begin返回的迭代器于end相同。
4:迭代器的使用类似于指针,可以经行解引用,加减,相等等操作
5:迭代器的类型:const_iterator和const iterator
const_iterator是一个指向常容器的迭代器,自身是个变量,但是指向的直不能改变;
const iteratro是一个指向容器的常迭代器,自身是个常量,一旦赋值,不能改变其指向的直;
6:迭代器和指针的差别
指针其实是狭义的迭代器,迭代器是指针的抽象。指针用于指向单个对象,而迭代器用于访问容器内的元素。
迭代器是具有类似指针行为的class template。也就是重载了operator-> operator* operator++等操作符的类模板。
由于指针的使用可能产生不可预料的过程,所以在现代的C++中采用vecator和interator代替一般的数组,string类型代替一般的字符串。C++中更偏向于使用容器类。
7:地雷:任何改变vector长度的操作都会使已存在的迭代器失败。例如,在调用push_back之后,就不能再信赖指向vector的迭代器的值了
0 0
- C指针和指针的指针
- C的存储器和指针
- c的指针*和引用&
- 详解c++[指针的指针] 和 [指针的引用]
- 指针的指针-----《C和指针》98页
- C语言指针数组和指向指针的指针
- C语言指针、数组指针和指针数组的区别
- C 语言指针,单指针和双指针的学习
- C/C++,指针的定义和使用
- 【C/C++】引用和指针的区别
- 【C/C++】数组和指针的区别
- c/c++--指针数组和数组指针的区别
- 指针变量和指针变量的地址(c/c++)
- c和c指针
- C指针的指针
- c 指针的指针
- C/C++基础知识:函数指针和指针函数的基本概念
- C/C++基础知识:函数指针和指针函数的基本概念
- Cocos2d-x3.0之路--02(引擎目录分析和一些细节)
- HBase环境搭建(一)Ubuntu下基于Hadoop文件系统的单机模式
- 简单的学习Matrix的缩放,平移,旋转,倾斜
- Map集合
- ZSGG5DR6HF7NI8K
- C++的迭代器和指针
- 更不会放过虚假合同人发加工坊
- ViewPager大小问题
- VS2012找不到SDKDDKVer.h的Bug修复
- android ViewHolder 空指针异常
- 算法竞赛入门经典 第六章 黑白图像
- UML语言初览
- eclipse 中文乱码解决方案
- Android Mms之:深入MMS支持