社区
工具平台和程序库
帖子详情
为何pointers,references,iterators 失效?
wolfbrother04
2002-11-17 03:47:04
楼上的大虾们!
对vector进行安插和移除操作后, 都会使“作用点”之后的各个元素的pointers,references,iterators 失效!
会引发内存重新的分配, 这是怎么样一个过程呢?
还请各位楼上的大虾帮忙!
谢谢各位!
...全文
43
3
打赏
收藏
为何pointers,references,iterators 失效?
楼上的大虾们! 对vector进行安插和移除操作后, 都会使“作用点”之后的各个元素的pointers,references,iterators 失效! 会引发内存重新的分配, 这是怎么样一个过程呢? 还请各位楼上的大虾帮忙! 谢谢各位!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Cuttloefish
2002-11-20
打赏
举报
回复
建议你看《The C++ Standard Library》,里面说得很清楚,有一些iterator在执行了添加/删除操作之后就不能用了,比如上面说的vector等等需要使用连续的内存空间来存放数据的类型,这些操作很可能会改变其内存地址。
fangrk
2002-11-18
打赏
举报
回复
如果vector的容量已经和大小一样,你再往vector中间push_back东西,vector会realloc(重新分配)内存,这样就导致原来的地址无效。
cxjddd
2002-11-17
打赏
举报
回复
当然是这样的啊!
好象 vector 现在的“家”只能有10个人,但是你要进来11个人,vector 只能搬家了,于是老的“通讯地址”就不起作用了。
stl迭代器
失效
迭代器
失效
分三种情况考虑,也是非三种数据结构考虑,分别为数组型,链表型,树型数据结构。数组型数据结构:该数据结构的元素是分配在连续的内存中,insert和erase操作,都会使得删除点和插入点之后的元素挪位置,...
C++ Deque容器的使用方法
Deque容器的使用方法 ...特别要注意,除了头尾两端,在任何地方安插与删除元素,都将导致指向deque元素的任何
pointers
reference
s
iterator
s
失效
。 包括的头文件为: #include using na
vector的容量进行缩减
在c++primer 上看到...但是安插操作可能使这些
reference
s、
pointers
、
iterator
s
失效
(因为安插可能导致内存的重新分配)。 有一个间接缩减vector容量的小窍门:采用swap让两个同期交换内容后,两者的容量也会互换:
Deque容器的使用方法
特别要注意,除了头尾两端,在任何地方安插与删除元素,都将导致指向deque元素的任何
pointers
reference
s
iterator
s
失效
。 包括的头文件为:#include <deque>using namespace std; ...
容器
一、vector 数据结构是动态数组。支持随机存取,时间复杂度是O(1)。迭代器是随机存取迭代器。 在尾端添加或删除元素...1.一旦内存重新分配,与vector元素相关的所有
reference
s、
pointers
、
iterator
s都会
失效
。 2...
工具平台和程序库
24,855
社区成员
27,343
社区内容
发帖
与我相关
我的任务
工具平台和程序库
C/C++ 工具平台和程序库
复制链接
扫一扫
分享
社区描述
C/C++ 工具平台和程序库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章