たとえば、 http://en.cppreference.com/w/cpp/container/map/eraseを参照してください。
C++03 には、次の 3 つのオーバーロードがありました。
void erase( iterator pos );
void erase( iterator first, iterator last );
size_type erase( const key_type& key );
C++11 では、1 番目と 2 番目のオーバーロードが take に変更され、またはconst_iterator
で呼び出すことができるようになりました。最初のオーバーロードも、要素が消去された後に要素にイテレータを返すようにすることで改善されました。iterator
const_iterator
iterator erase( const_iterator pos );
void erase( const_iterator first, const_iterator last );
size_type erase( const key_type& key );
C++17 では、const 以外のオーバーロードが再導入されました。
iterator erase( const_iterator pos );
iterator erase( iterator pos );
void erase( const_iterator first, const_iterator last );
size_type erase( const key_type& key );
なぜこれが必要なのですか?ranged erase
、 、、、insert
などのシーケンス コンテナのいずれにも追加されませんでした。vector
deque
list