一旦一个键值对被插入到一个unordered_map中,并且假设iter指向这一对,那么在unordered_map中出现的这一对键值对的整个生命周期中,是否会->首先保持不变呢?
键主要是长字符串,所以我想将它们的迭代器->first的地址存储在其他引用位置,而不是字符串本身。
发布于 2016-02-19 02:00:47
除非您直接删除元素,否则会很好。
对于std::unordered_map::insert
,
如果由于插入而发生重散列,则所有迭代器都将失效。否则迭代器不会受到影响。引用不会使失效。只有当新元素数大于
max_load_factor()*bucket_count()
时才会重新散列。
对于std::unordered_map::erase
,
对擦除元素的引用和迭代器无效。其他迭代器和引用不会使失效。
https://stackoverflow.com/questions/35495963
复制相似问题