这个问题在我看来更像是出于学术兴趣而不是实际用例:
STL 关联容器,即 [multi]set 和 [multi]map,包含重载方法,例如:
// for std::map
void erase ( iterator position );
size_type erase ( const key_type& x );
// for std::set
iterator erase (const_iterator position);
size_type erase (const value_type& val);
我的问题:如果key_type
,分别怎么办。value_type
是iterator
或const_iterator
?
我知道将迭代器存储在容器中是危险的并且可能没用。但是实际的 STL 实现会如何表现呢?行为是否已定义?