読者です 読者をやめる 読者になる 読者になる

Unordered連想コンテナのerase

C++

Boost 1.43.0から、unordered_set/unordered_mapにquick_erase()メンバ関数が追加されました。


従来のerase()の問題点として、戻り値でイテレータを返す仕様になっていたために平均O(1)の計算量が不可能だといったものがありました。
互換性のために今からイテレータを返さないようには修正できなかったので、今回新しく戻り値がvoidなquick_erase()が追加されることになりました。


この問題はC++0xも同様に抱えており、Boostと同様の修正が行われると思われます。


unordered_set::erase() complexity bug?

N2023 erase(iterator) for unordered containers should not return an iterator

Library Issue 579 - erase(iterator) for unordered containers should not return an iterator