std::hash_map
不是C++ standard
的一部分,而是标准库扩展的一部分。例如,它是为VS2005定义的。通常std::hash_map.erase
会使std::hash_map
的所有迭代器无效吗?据推测,当删除元素以优化内存使用时,可以将内存重新分配给较小的数组。
hash_map.erase
实际上是否使所有迭代器无效?
答案 0 :(得分:2)
看起来它在文档中的VS2005示例中指定:
每个元素都包含一个单独的键和一个映射值。序列以允许查找,插入和删除任意元素的方式表示,其中许多操作独立于序列中的元素数量(恒定时间) - 至少在最好的情况下。此外,插入元素不会使迭代器无效,并且删除元素只会使那些指向被删除元素的迭代器无效。