iterator迭代器和指针的区别
来源:互联网 发布:mmd极乐净土镜头数据 编辑:程序博客网 时间:2024/05/21 15:42
迭代器与指针的差别:
迭代器:(1)迭代器不是指针,是类模板,表现的像指针。他只是模拟了指针的一些功能,通过重载了指针的一些操作符,->,*,++ --等封装了指针,是一个“可遍历STL( Standard Template Library)容器内全部或部分元素”的对象, 本质是封装了原生指针,是指针概念的一种提升(lift),提供了比指针更高级的行为,相当于一种智能指针,他可以根据不同类型的数据结构来实现不同的++,--等操作;
(2)迭代器返回的是对象引用而不是对象的值,所以cout只能输出迭代器使用*取值后的值而不能直接输出其自身。
(3)在设计模式中有一种模式叫迭代器模式,简单来说就是提供一种方法,在不需要暴露某个容器的内部表现形式情况下,使之能依次访问该容器中的各个元素,这种设计思维在STL中得到了广泛的应用,是STL的关键所在,通过迭代器,容器和算法可以有机的粘合在一起,只要对算法给予不同的迭代器,就可以对不同容器进行相同的操作。
ite=find(vec.begin(),vec.end(),88);vec.insert(ite,2,77); //迭代器标记的位置前,插入数据;cout<<*ite<<endl; //会崩溃,因为迭代器在使用后就释放了,*ite的时候就找不到它的地址了;注:迭代器在使用后就释放了,不能再继续使用,但是指针可以!!
指针:
指针能指向函数而迭代器不行,迭代器只能指向容器;指针是迭代器的一种。指针只能用于某些特定的容器;迭代器是指针的抽象和泛化。所以,指针满足迭代器的一切要求。
总之,指针和迭代器是有很大差别的,虽然他们表现的行为相似,但是本质是不一样的!一个是类模板,一个是存放一个家伙的地址的指针变量。
8 0
- iterator迭代器和指针的区别
- iterator迭代器和指针的区别
- iterator和指针区别
- 关于迭代器(iterator)和指针的思考
- 关于迭代器(iterator)和指针的思考
- 关于迭代器(iterator)和指针的思考
- Iterator和listIterator的区别 迭代器
- Iterator和listIterator的区别 迭代器
- const iterator ,iterator 和const_iterator的区别
- iterator、const_iterator和const iterator的区别
- const_iterator, iterator和const iterator的区别
- Iterator和listIterator的区别
- List和Iterator的区别
- Iterator和listIterator的区别
- Iterator和listIterator的区别
- Iterable和Iterator的区别
- Iterator和ListIterator的区别
- Enumeration和Iterator的区别
- 再说delegate
- js 解析json字符串的方法
- 安装完 NTFS for Mac 应用列表里没有
- 微信公众平台OAuth2.0网页授权php示例
- 【Leetcode】:319. Bulb Switcher 问题 in JAVA
- iterator迭代器和指针的区别
- oracle 更改服务端字符集 更改oracle字符集
- lucene学习之自定义评分
- TestNG 学习总结 - 测试结果报告 - HTML和XML报告(十七)
- n internal error occurred during: "Launching portal on Tomcat 7.x (1)". java.lang.NullPointerExcept
- PHP处理密码的几种方式
- javascript如何调用本地exe程序
- Android Studio打包混淆问题总结
- Linphone-android 3.9.1 编译