手机
当前位置:查字典教程网 >编程开发 >C语言 >浅析iterator与指针的区别
浅析iterator与指针的区别
摘要:1.指针和iterator都支持与整数进行+,-运算,而且其含义都是从当前位置向前或者向后移动n个位置2.指针和iterator都支持减法运...

1.指针和iterator都支持与整数进行+,-运算,而且其含义都是从当前位置向前或者向后移动n个位置

2.指针和iterator都支持减法运算,指针-指针得到的是两个指针之间的距离,迭代器-迭代器得到的是两个迭代器之间的距离

3.通过指针或者iterator都能够修改其指向的元素

通过上面这几点看,两者真的很像,但是两者也有着下面的几个不同地方

1.cout操作符可以直接输出指针的值,但是对迭代器进行在操作的时候会报错。通过看报错信息和头文件知道,迭代器返回的是对象引用而不是对象的值,所以cout只能输出迭代器使用*取值后的值而不能直接输出其自身。

2.指针能指向函数而迭代器不行,迭代器只能指向容器

这就说明了迭代器和指针其实是完全不一样的概念来的。指针是一种特殊的变量,它专门用来存放另一变量的地址,而迭代器只是参考了指针的特性进行设计的一种STL接口。

笔者曾在网上看到这样一种说法:迭代器是广义指针,而指针满足所有迭代器要求。迭代器是STL算法的接口,而指针是迭代器,因此STL算法可以使用指针来对基于指针的非STL容器进行操作。

笔者觉得上面说法也有几分道理,但是到底正不正确就留给看官自己判断了。但是有一点希望大家注意的是:千万不要把指针和迭代器搞混了。也许某些编译器使用指针来实现迭代器以至于有些人会误以为指针和迭代器是一个概念来的。

【浅析iterator与指针的区别】相关文章:

浅析STL中的常用算法

深入解析函数指针与返回函数的指针

浅析VC++中的头文件包含问题

浅析C++中的虚函数

深入理解void以及void指针的含义

深入C++可见性与生命期的区别详解

函数指针与指针函数的学习总结

浅析string类字符串和C风格字符串之间的区别

浅析栈区和堆区内存分配的区别

深入解析C++中的指针数组与指向指针的指针

精品推荐
分类导航