c++ - 新的 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 签名还不足以接收iterator
和const_iterator
吗?
解决方案
当erase(const key_type& key)
您通过iterator
. 考虑key_type
类似于的情况std::any
。
推荐阅读
- visual-studio-code - 有没有办法更改 Visual Studio Code(1.56 版以上)上的操作的鼠标悬停反馈?
- powershell - 使用 azure powershell 部署 docker
- c++ - std::transfrom 中未解决的重载函数类型
- vba - 如何在同一行中插入来自 Textbox2 的值
- metabase - Metabase 中是否有模数/模数运算符?
- c++ - Clang-formal off 大括号包装
- flutter - 如何生成 PDF 文件的缩略图而不在 Flutter 应用程序中下载?
- php - Laravel 中的定时输出
- python - Pandas read_csv 坏行 - 引号不均匀的字符串中的分隔符
- python - 如何使用 BeautifulSoup 从内部 div 标签中提取文本