首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

迭代器 跟 指针

2012-08-13 
迭代器 和 指针正在看《 c++ primer 第四版》看到迭代器,有点迷糊。感觉迭代器就是一个指针一样的。这个迭代器

迭代器 和 指针
正在看《 c++ primer 第四版》
看到迭代器,有点迷糊。
感觉迭代器就是一个指针一样的。这个迭代器和指针到底有什么关系?

还有一句“任何改变 vector 长度的操作都会使已存在的迭代器失效”,神马意思?原来的迭代器指向的位置变化了?
vector感觉和数组很类似?和数组有神马区别

[解决办法]
迭代器可以理解成泛化的指针,至于什么是泛化,先尝试使用stl这类使用模板技术的库再回头来研究也不迟

至于vector和普通数组

普通数组在声明或者new之后,其地址和大小是固定的。
所以如果在使用过程中需求大于数组现有容量,就要重新申请一个新的数组,并将原数据复制到新的数组中。
vector就是一个在内部实现了这些操作的“动态数组”,使用的时候就不需要考虑容量问题了。
[解决办法]

探讨

迭代器可以理解成泛化的指针,至于什么是泛化,先尝试使用stl这类使用模板技术的库再回头来研究也不迟

至于vector和普通数组

普通数组在声明或者new之后,其地址和大小是固定的。
所以如果在使用过程中需求大于数组现有容量,就要重新申请一个新的数组,并将原数据复制到新的数组中。
vector就是一个在内部实现了这些操作的“动态数组”,使用的时候就不需要考虑容量问题了。

[解决办法]
迭代器是指针的抽象
vecotr内部可能会重新分配数据,所以会造成已存在的迭代器失效,因为它不是结点型容器

热点排行