首页 > 解决方案 > 新的 std::map::erase() 签名 C++17

问题描述

根据这个答案, aniterator必须隐式转换为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++11iteratorc++17const-iterator

解决方案


erase(const key_type& key)您通过iterator. 考虑key_type类似于的情况std::any


推荐阅读