You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

boost::multi_index指针/引用稳定性:哪些操作会使其失效?

boost::multi_index 中会导致指针/引用失效的操作

在boost::multi_index容器中,指向元素的指针和引用的稳定性直接绑定元素是否被移除——只要元素未从容器中删除,指针和引用就会始终有效(重哈希、元素在索引中重新排序等操作都不会导致它们失效)。会触发指针/引用失效的操作仅有以下几类:

  • 调用容器的clear()方法:清空容器内所有元素后,指向原元素的指针和引用全部失效。
  • 调用任意erase()重载方法:无论是通过迭代器、键值范围还是条件删除元素,被删除元素对应的指针和引用都会立即失效。
  • 调用extract()方法后丢弃返回的节点:extract()会将元素从容器中移除并返回持有该元素的节点对象,若此节点被销毁且未重新插入容器,原元素的指针和引用会失效。

额外说明:

  • replace()、modify()、modify_key()这类修改元素内容的操作,哪怕导致元素在有序/哈希索引中重新定位,也不会改变元素的内存地址,因此指针和引用依然有效。
  • rehash()、reserve()等调整哈希表容量的操作,仅修改索引内部结构,不会移动元素本身,指针和引用不受影响。

内容的提问来源于stack exchange,提问作者Andy Shulman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 07:57:16