C++ 迭代器删除remove/erase

本文介绍了在C++中如何处理STL容器的迭代器删除操作,包括sequence container(如vector, deque, list)和associative container(如set, map)的差异。在GCC下,对于sequence container,需要在调用erase后更新迭代器,例如`a.erase(b++)`。对于关联容器,直接使用erase即可。此外,介绍了使用`erase-remove`惯用法处理vector和deque,以及list的`remove_if`方法。最后提到了map中删除特定迭代器的方法。" 124627684,13760556,R语言岭回归与LASSO回归对比及应用,"['R语言', '统计学习', '回归分析', '数据标准化', '模型选择']
摘要由CSDN通过智能技术生成

STL容器分为Sequence container(vector, deque, list)和associative container(set, multiset, map, multimap)。 C++标准中, sequence container的erase函数会返回iterator, 但是associative container却不会返回。 Visual STudio中实现了,但是在gcc下却不能编译通过,所以为了解决兼容问题,在gcc需要写成a.erase(b++)

 

如果容器是一个标准序列容器,则写一个循环来遍历容器中的元素,记住每次掉用erase时,要用它的返回值更新迭代器。

如果容器是一个标准关联容器,则写一个循环来遍历容器中的元素,记住每次把迭代器传给erase时,要对迭代器做后缀递增。

1. 如果容器是vectorstringd

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值