浅析iterator与指针的区别
2013-10-09 09:41
811 查看
1.指针和iterator都支持与整数进行+,-运算,而且其含义都是从当前位置向前或者向后移动n个位置
2.指针和iterator都支持减法运算,指针-指针得到的是两个指针之间的距离,迭代器-迭代器得到的是两个迭代器之间的距离
3.通过指针或者iterator都能够修改其指向的元素
通过上面这几点看,两者真的很像,但是两者也有着下面的几个不同地方
1.cout操作符可以直接输出指针的值,但是对迭代器进行在操作的时候会报错。通过看报错信息和头文件知道,迭代器返回的是对象引用而不是对象的值,所以cout只能输出迭代器使用*取值后的值而不能直接输出其自身。
2.指针能指向函数而迭代器不行,迭代器只能指向容器
这就说明了迭代器和指针其实是完全不一样的概念来的。指针是一种特殊的变量,它专门用来存放另一变量的地址,而迭代器只是参考了指针的特性进行设计的一种STL接口。
笔者曾在网上看到这样一种说法:迭代器是广义指针,而指针满足所有迭代器要求。迭代器是STL算法的接口,而指针是迭代器,因此STL算法可以使用指针来对基于指针的非STL容器进行操作。
笔者觉得上面说法也有几分道理,但是到底正不正确就留给看官自己判断了。但是有一点希望大家注意的是:千万不要把指针和迭代器搞混了。也许某些编译器使用指针来实现迭代器以至于有些人会误以为指针和迭代器是一个概念来的。
您可能感兴趣的文章:
相关文章推荐
- C语言中常量指针与指针常量区别浅析
- 浅析C++中引用与指针的区别
- iterator和指针的区别
- 浅析数组指针、指针数组的区别
- 指针赋值 int a[5]={.... ...}, a 、&a[0]、 &a三者之间的区别 浅析 C/C++求职面试必备考点(五) .
- iterator和指针的区别 http://www.cnblogs.com/this-543273659/archive/2011/08/18/2144378.html
- 浅析数组与指针的联系与区别2
- 浅析标识常量、常量指针、指针常量、指向常量的指针常量的区别
- 指针赋值 int a[5]={.... ...}, a 、&a[0]、 &a三者之间的区别 浅析 C/C++求职面试必备考点(五)
- iterator和指针区别
- 值传递、指针传递、引用传递的区别
- 浅析C语言中的指针
- 浅析C++中的this指针
- 深入浅析Vue全局组件与局部组件的区别
- C++ 值传递、指针传递、引用传递的区别
- jquery中prop()方法和attr()方法的区别浅析
- 指针函数与函数指针的区别
- 数组和指针的比较和关系以及区别
- 复习笔记之指针和引用的区别
- C++ 指针和引用的区别