参见,例如, http ://en.cppreference.com/w/cpp/container/map/erase
在 C++03 中有三个重载:
void erase( iterator pos );
void erase( iterator first, iterator last );
size_type erase( const key_type& key );
在 C++11 中,第一个和第二个重载被更改为 takeconst_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 中,重新引入了非常量重载:
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
。