Hash_map.erase делает недействительными все итераторы? - PullRequest
1 голос
/ 18 февраля 2011

std::hash_map не является частью C++ standard, но является частью расширений стандартной библиотеки. Например, оно определено для VS2005 . Обычно std::hash_map.erase делает недействительными все итераторы для std::hash_map? Предположительно, при удалении элементов память может быть перераспределена в меньший массив для оптимизации использования памяти.

Так hash_map.erase фактически делает недействительными все итераторы?

1 Ответ

2 голосов
/ 18 февраля 2011

Похоже, что это указано в примере VS2005 в документации:

Каждый элемент содержит отдельный ключ и сопоставленное значение.Последовательность представлена ​​таким образом, что позволяет искать, вставлять и удалять произвольный элемент с количеством операций, которое не зависит от количества элементов в последовательности (постоянное время) - по крайней мере, в лучшем случае.Более того, вставка элемента делает недействительными никакие итераторы, а удаление элемента делает недействительными только те итераторы, которые указывают на удаленный элемент.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...