c++ vector删除元素 c++ vector erase用法


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

c++ vector删除元素 c++ vector erase用法

在C++中,vector 是一个动态数组容器,支持在运行时动态添加和删除元素。要删除 vector 中的元素,最常用的方法是使用 erase() 函数。下面详细介绍 erase 的用法以及一些常见操作。

erase() 基本语法

erase() 函数用于删除 vector 中指定位置或范围的元素,有以下两种主要形式:

  • iterator erase(iterator pos); —— 删除单个元素
  • iterator erase(iterator first, iterator last); —— 删除一个区间内的多个元素

函数返回值是一个迭代器,指向被删除元素之后的下一个元素。

删除单个元素

如果你想删除 vector 中某个特定位置的元素,比如第2个元素(索引为1),可以这样做:

vector vec = {10, 20, 30, 40};
vec.erase(vec.begin() + 1); // 删除索引为1的元素(即20)
// 现在 vec 内容为 {10, 30, 40}

删除一段范围的元素

你也可以删除从某个起始位置到结束位置之间的所有元素:

文心一言 文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

文心一言 4061 查看详情 文心一言 vector vec = {10, 20, 30, 40, 50};
vec.erase(vec.begin() + 1, vec.begin() + 4); // 删除 [1, 4) 范围内元素
// 即删除 20, 30, 40 → 结果为 {10, 50}

结合 find 删除指定值的元素

如果想删除某个具体值(例如删除所有等于30的元素),通常需要配合 std::find循环 + 条件判断 使用。但注意:find 只能找到第一个匹配项。

#include gorithm>
vector vec = {10, 20, 30, 40};
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
基本上就这些。掌握 erase 和 remove-erase 惯用法,就能高效处理 vector 元素删除问题。

以上就是c++++ vector删除元素 c++ vector erase用法的详细内容,更多请关注其它相关文章!


# go  # c++  # 迭代  # 一言  # 多个  # 推荐使用  # 是一个  # 删除元素  # 龙岩全网营销策划推广  # 关键词营销推广公司  # 地产关键词排名价格表  # 金华市外贸网站推广公司  # 樟木头家具网站推广营销  # 网站营销推广选金手指  # 场景画素材网站推广方案  # 山西抖音seo优化电话  # 私域流量 营销推广  # 重庆做网站建设公司官网  # 链表  # 如何实现  # 如何解决  # 尼克  # 遍历 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: 苹果自助维修计划支持哪些设备机型  KFC邀请码怎么使用领额外优惠_KFC邀请码输入方式与额外优惠代码获取方法  PHP中获取HTTP响应状态消息:方法与限制  Firefox OS应用开发:解决XMLHttpRequest跨域请求阻塞问题  Go语言中方法接收器的选择:值类型还是指针类型?  《i莞家》修改昵称方法  《小宇宙》标记不友善评论方法  c++20的指定初始化(Designated Initializers)怎么用_c++ C风格结构体初始化  魔法祈幻界兑换码礼包大全  《画加》约稿流程  如何使用 composer 和 aop-php 实现 AOP 编程?  yandex网页版直接登录 yandex官方入口平台访问方法  《糖豆》添加舞曲方法  智学网成绩单查询系统网_智学网学生平台登录  Google Drive API服务器端访问指南:服务账户认证详解  iPhone 14 Pro如何更改区域设置_iPhone 14 Pro地区语言修改教程  苹果手机手电筒无法开启  从HTML表单获取逗号分隔值并转换为NumPy数组进行预测  sublime text 4如何安装_最新版sublime下载与汉化教程  解决jQuery多计算器输入字段冲突的教程  我的世界官方网址入口 我的世界游戏主页直达入口  mail.qq.com登录入口 QQ邮箱网页版直达  iphone16系列配置参数介绍  电脑的“恢复环境(WinRE)”找不到怎么办_Windows系统恢复环境重建【高级修复】  谷歌邮箱怎么换绑定邮箱Gmail安全备份邮箱修改方法  植物大战僵尸95版游戏版下载_植物大战僵尸95版游戏版安装指南  《海贝音乐》均衡器设置方法  《地下城堡4:骑士与破碎编年史》墓穴挑战125攻略  手机耗电快是什么原因 延长手机电池续航时间的设置方法【详解】  PHP多语言网站的实现:会话管理与翻译函数优化教程  深入理解J*aScript异步操作:setTimeout与调用栈的真相  从J*a应用程序中导出MySQL表数据的技术指南  苹果如何下载nanobanana  猫眼电影app如何设置电影上映提醒_猫眼电影上映提醒设置教程  VS Code源代码管理(SCM)视图的进阶使用技巧  抖音网页版地址直接进入_抖音网页版在线观看入口  《漫蛙manwa2》防走失网页版链接2025  歌词怎么展示在|直播|间视频号?有什么注意事项?  智慧团建活动报名入口 智慧团建活动报名入口手机端官网​  微信步数怎么刷_微信步数快速提升技巧  向往的生活小游戏启动处_向往的生活小游戏立即启动  美发店速赢秘籍  招商淘客入门指南  漫蛙app官方版手机正版入口-漫蛙漫画manwa在线漫画正版入口  宝妈做视频号该写什么标签话题?宝妈关注的话题有哪些?  VBA Outlook邮件自动化:高效集成Excel数据与列标题的策略  创建快捷方式启动系统保护  漫蛙漫画官方网站使用_漫蛙manwa网页版在线入口教程  163邮箱网页版官方登录入口 163邮箱网页版访问页面  《密马》发布账号方法 

 2025-11-26

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.