【问题标题】:std::set<T>::erase(key). What if key isn't there?std::set<T>::erase(key)。如果没有钥匙怎么办?
【发布时间】:2011-05-30 08:59:22
【问题描述】:

如果我从 std::set 中删除一个元素并传递密钥,而不是迭代器,并且密钥现在不在集合中,是否会引发异常?问题是 MSDN 文档中的每一秒都说:“这确实是废话,但它不符合标准”。所以我需要知道标准行为。我只是在标准中找不到它。重定向到相关子句也可以。谢谢。

【问题讨论】:

  • 顺便说一句,在我的 STL (SLTPORT) 版本中,功能检查,但我需要知道标准行为

标签: c++ stl set


【解决方案1】:
size_type erase ( const key_type& x );

返回值

函数返回数量 元素被擦除,在集合中 如果元素具有 x 的值存在(因此是 随后被擦除)和零 否则。

(来自set::erase

【讨论】:

    【解决方案2】:

    在第 23.1 节(容器要求)中找到了这个:

    没有擦除(),pop_back()或 pop_front() 函数抛出一个 例外。

    所以erase 不能抛出异常。

    【讨论】:

      猜你喜欢
      • 2013-01-22
      • 1970-01-01
      • 2014-08-07
      • 2012-01-25
      • 1970-01-01
      • 1970-01-01
      • 2019-12-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多