diff options
-rw-r--r-- | absl/container/flat_hash_map.h | 6 | ||||
-rw-r--r-- | absl/container/flat_hash_set.h | 6 |
2 files changed, 8 insertions, 4 deletions
diff --git a/absl/container/flat_hash_map.h b/absl/container/flat_hash_map.h index e6bdbd9e..006e478a 100644 --- a/absl/container/flat_hash_map.h +++ b/absl/container/flat_hash_map.h @@ -228,9 +228,11 @@ class flat_hash_map : public absl::container_internal::raw_hash_map< // NOTE: returning `void` in this case is different than that of STL // containers in general and `std::unordered_map` in particular (which // return an iterator to the element following the erased element). If that - // iterator is needed, simply post increment the iterator: + // iterator is needed, copy the iterator before erasing: // - // map.erase(it++); + // // `erase()` will invalidate `it`, so advance `it` first. + // auto copy_it = it++; + // m.erase(copy_it); // // iterator erase(const_iterator first, const_iterator last): // diff --git a/absl/container/flat_hash_set.h b/absl/container/flat_hash_set.h index 4938c703..7bb1fa90 100644 --- a/absl/container/flat_hash_set.h +++ b/absl/container/flat_hash_set.h @@ -220,9 +220,11 @@ class flat_hash_set // NOTE: returning `void` in this case is different than that of STL // containers in general and `std::unordered_set` in particular (which // return an iterator to the element following the erased element). If that - // iterator is needed, simply post increment the iterator: + // iterator is needed, copy the iterator before erasing: // - // set.erase(it++); + // // `erase()` will invalidate `it`, so advance `it` first. + // auto copy_it = it++; + // set.erase(copy_it); // // iterator erase(const_iterator first, const_iterator last): // |