c++ - vector::erase 是否会减少 vector::capacity?
问题描述
Cppreference 只说:
从容器中移除指定的元素。1) 移除 pos 处的元素。2) 删除范围内的元素 [first; 最后的)。
在擦除点处或之后使迭代器和引用无效,包括 end() 迭代器。
迭代器 pos 必须有效且可取消引用。因此 end() 迭代器(有效,但不可取消引用)不能用作 pos 的值。
如果 first==last,则迭代器 first 不需要可取消引用:擦除空范围是无操作的。
解决方案
不一定没有。在阅读 C++ 标准(并且 cppreference 非常好地代理标准)时,如果没有明确提及某些内容,则假设不需要这样的内容。
对于 C++ 标准库实现来说,这样做可能不是最佳的。
推荐阅读
- python-3.x - QListWidgetItem 在插入 QListWidget 后立即写入数据时会发出什么信号?
- html - Markdown IMG 未显示在 Azure Repos 自述文件中
- sql - 使用 SET 运算符的 SQL 查询
- ruby-on-rails - Rails 错误:Sprockets::FileNotFound in Users::Sessions#new
- javascript - 1 组件的所有实例都引用第一个实例而不是其自身;2 子道具只有在调用父母的 setState 两次后才会更新
- zabbix - Zabbix-server 导入不同版本的主机设置(5.0 -> 4.0)
- java - java - 将jpg文件转换为字节字符串并再次转换回jpg
- javascript - 为什么material-ui会两次调用他们的对话框?
- google-colaboratory - Google Colab Pro 未分配超过 1 GB 的 GPU 内存
- javascript - 无法再使用 javascript 关闭当前窗口