std :: set` erase(const key_type& x)`在STL中实现`擦除(collection.find(x));`有吗?

时间:2012-03-09 23:19:47

标签: c++ stl set

std :: set erase ( x )在STL中实现的方式是erase ( collection.find( x ) );xconst key_type&)吗?

1 个答案:

答案 0 :(得分:2)

我确信它们可能非常相似,但是它们会产生差异,因为必须以某种方式处理“不存在”元素,而另一方则不需要担心(并且可能不会在非调试版本中。

  • std::set::erase( const key_type& )将返回01,具体取决于是否找到要删除的匹配元素。

  • std::set::erase( iterator )不返回任何内容,只有在传入的迭代器可解除引用时才定义行为。因此,如果您传入find(x) x不在集合中,则表示您遇到问题。