【问题标题】:New std::map::erase() signature C++17新的 std::map::erase() 签名 C++17
【发布时间】:2018-11-18 18:20:09
【问题描述】:

根据this answeriterator 必须隐式转换为const_iterator。既然这是真的,正如我们在 insert_or_assign() 中看到的那样,那么为什么在 C++17 中为 std::map::erase() 添加了一个新签名?

在 C++11 中,我们有 iterator erase( const_iterator pos );

在 C++17 中,我们现在有 iterator erase( iterator pos );

C++11 签名还不足以接收iteratorconst_iterator吗?

【问题讨论】:

    标签: c++ c++11 iterator c++17 const-iterator


    【解决方案1】:

    当您传递iterator 时,erase(const key_type& key) 可能会产生歧义。考虑key_type 类似于std::any 的情况。

    【讨论】:

      猜你喜欢
      • 2017-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-07
      • 2013-03-14
      • 2012-08-18
      • 2011-06-05
      • 2021-10-26
      相关资源
      最近更新 更多