c++ boost::multi_index中的指针/引用稳定性

jgwigjjp  于 2023-03-20  发布在  其他
关注(0)|答案(1)|浏览(134)

https://www.boost.org/doc/libs/1_81_0/libs/multi_index/doc/tutorial/indices.html#guarantees 讨论了迭代器在重散列时的稳定性。然而,这并不一定意味着指针和引用的稳定性。boost::multi_index上的哪些操作(如果有的话)会使指针和引用无效?

bgtovc5b

bgtovc5b1#

对于Boost.MultiIndex的所有索引,只要元素没有被擦除,迭代器、指针和对元素的引用就保持有效。对于散列索引,这与std::unordered_map和其他标准C++无序关联容器提供的保证形成对比,在这些容器中,迭代器的稳定性在重新散列时无法保持--重申一下,如果你有一个迭代器/指针/引用到散列索引中的一个元素,然后再散列这个索引,那么这个迭代器/指针/引用在那之后仍然有效。

相关问题