根据此答案,iterator
必须将隐式转换为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的签名不够好接收iterator
和const_iterator
?
erase(const key_type& key)
当您通过时,可能会有歧义iterator
。考虑其中的情况key_type
类似的情况std::any
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句