为何pointers,references,iterators 失效?

wolfbrother04 2002-11-17 03:47:04

楼上的大虾们!
对vector进行安插和移除操作后, 都会使“作用点”之后的各个元素的pointers,references,iterators 失效!
会引发内存重新的分配, 这是怎么样一个过程呢?
还请各位楼上的大虾帮忙!
谢谢各位!
...全文
43 3 打赏 收藏 转发到动态 举报
写回复
用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 只能搬家了,于是老的“通讯地址”就不起作用了。

24,855

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧