新闻中心
c++ vector删除元素 c++ vector erase用法
答案:vector的erase函数用于删除指定位置或范围元素,返回指向删除后下一元素的迭代器;可结合find删除特定值,推荐使用remove-erase惯用法删除满足条件的多个元素,注意迭代器失效与性能影响。

在C++中,vector 是一个动态数组容器,支持在运行时动态添加和删除元素。要删除 vector 中的元素,最常用的方法是使用 erase() 函数。下面详细介绍 erase 的用法以及一些常见操作。
erase() 基本语法
erase() 函数用于删除 vector 中指定位置或范围的元素,有以下两种主要形式:
- iterator erase(iterator pos); —— 删除单个元素
- iterator erase(iterator first, iterator last); —— 删除一个区间内的多个元素
函数返回值是一个迭代器,指向被删除元素之后的下一个元素。
删除单个元素
如果你想删除 vector 中某个特定位置的元素,比如第2个元素(索引为1),可以这样做:
vectorvec.erase(vec.begin() + 1); // 删除索引为1的元素(即20)
// 现在 vec 内容为 {10, 30, 40}
删除一段范围的元素
你也可以删除从某个起始位置到结束位置之间的所有元素:
美图云修
商业级AI影像处理工具
50
查看详情
vectorvec.erase(vec.begin() + 1, vec.begin() + 4); // 删除 [1, 4) 范围内元素
// 即删除 20, 30, 40 → 结果为 {10, 50}
结合 find 删除指定值的元素
如果想删除某个具体值(例如删除所有等于3
0的元素),通常需要配合 std::find 或 循环 + 条件判断 使用。但注意:find 只能找到第一个匹配项。
vector
auto it = std::find(vec.begin(), vec.end(), 30);
if (it != vec.end()) {
vec.erase(it); // 找到后删除
}
// vec 变为 {10, 20, 40}
删除所有满足条件的元素(推荐使用 remove-erase 惯用法)
如果你要删除多个相同值或满足某种条件的元素,直接用 erase 配合循环可能出错(因为迭代器失效)。推荐使用 remove-erase 惯用法:
vec.erase(std::remove(vec.begin(), vec.end(), 30), vec.end());// 删除所有等于30的元素
或者使用 lambda 表达式删除满足条件的元素:
vec.erase(std::remove_if(vec.begin(), vec.end(), [](int n) { return n > 30; }),
vec.end()
);
// 删除所有大于30的元素
注意事项
- erase 会改变 vector 大小,并使被删除位置之后的所有迭代器失效
- 对空位置调用 erase 会导致未定义行为,使用前应确保迭代器有效
- 频繁在中间删除元素效率较低(O(n)),因后续元素需前移;如需高频删改,考虑 list 或 deque
以上就是c++++ vector删除元素 c++ vector erase用法的详细内容,更多请关注其它相关文章!
# 如何选择
# 网络营销和运营推广
# 信阳快照seo推广
# 企业全网营销品牌推广
# 漱口水营销推广策略产品
# 许昌网站推广优化怎么选
# 定西seo公司解答火星
# 银行小程序推广营销案例
# 深圳医疗seo招聘
# 嵩明网站建设联系方式
# title标签在seo如何优化
# 如何实现
# 删除元素
# 文件系统
# 尼克
# 数据结构
# 是一个
# 推荐使用
# 多个
# 美图
# 迭代
# c++
# go
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
Mac怎么锁定备忘录_Mac备忘录加密设置教程
理解J*aScript Promise的微任务队列与执行顺序
sublime如何配置Go语言开发环境_sublime搭建Golang编译运行系统
微信语音通话掉线如何解决 微信语音通话稳定优化方法
J*aScript生成器_j*ascript异步迭代
探索高级语言到C/C++的转译路径:以Go为例及内存管理策略
Excel函数批量查找替换超快方法_Excel用REPLACE和FIND函数秒级替换
Python字典中优雅地迭代剩余元素的方法
豆包手机助手发布技术预览版:直接嵌入手机系统!努比亚样机发售
蛙漫正版漫画平台入口_蛙漫免费阅读全站漫画资源
Promise错误处理:在catch后终止链式then执行的策略
PHP中高效并行检查多链接状态的教程
如何在Python中使用Optional类型处理可变对象并避免Pylint警告
yandex入口引擎手机版 yandex安卓版下载入口
Pandas DataFrame 高效批量赋值:告别循环与笛卡尔积误区
微信网页版官方快速登录入口 微信网页版网页版账号直达
Django AJAX 文件上传教程:解决图片无法保存到模型的常见问题
Win10如何开启蓝牙功能_Windows10找不到蓝牙开关解决方法
excel怎么制作工资条 excel快速生成工资条的方法
AO3中文官网链接_AO3网页版稳定镜像站
Win10桌面图标出现小盾牌怎么办 Win10去除UAC图标教程【解决】
菜鸟取件码是什么怎么查 最全查询渠道汇总
Composer的 archive 命令怎么用_快速打包你的PHP项目及其Composer依赖
三星ZFold5多任务卡顿_Samsung ZFold5流畅度提升
PHP表单数据传递:如何通过隐藏输入字段获取动态ID
uc手机浏览器网页版入口 uc浏览器手机版便捷登录首页
痛风发作了怎么办? 快速止痛和后期饮食调理
Shopware订单对象中获取产品自定义字段的正确方法
PS5 Pro有点优势但不多! 《燕云十六声》PS5平台与PC性能画面对比
Python中高效访问嵌套字典与列表中的键值对
必由学官网快捷入口 必由学网页版在线学习平台
如何为你的Composer包编写自动化测试_集成PHPUnit到Composer的scripts工作流
PPT平滑切换怎么做 PPT炫酷“平滑”切换动画制作教程【必学】
《燕云十六声》两周内达九百万玩家!位居畅销榜第五
内存疯狂猛猛涨价:主板销量直接腰斩!
《主播少女的秘密账号迷宫》首支宣传片
Python类型检查:优化关联可选属性的Mypy推断策略
知音漫客官网漫画下载_知音漫客网页版阅读记录
uc浏览器网页版入口 uc浏览器网页版最新网址
CSS Grid如何控制元素对齐_align-items与justify-items组合使用
Google翻译怎么语音输入_Google翻译语音输入功能使用与设置方法
怎么在html里运行vbs脚本_html中运行vbs脚本方法【教程】
J*aScript中赋值与自增运算符的复杂交互与执行机制
J*a编写用户注册与登录功能_掌握字符串与验证逻辑
J*aScript中针对特定容器内图片动画的实现教程
Win11怎么安装Linux子系统 Win11 WSL2安装Ubuntu及环境配置指南
淘宝网网页版登录入口 淘宝官方网页版快捷登录
魅族17怎样用浏览器译外语网页_iPhone魅族17浏览器译外语网页【即时翻译】
谷歌推RCS信息存档功能:公司可监控员工私密信息!
移动端XML文件怎么转换成Excel 手机和平板上的解决方案


2025-11-26
浏览次数:次
返回列表