C++编程经验:vector的遍历删除
Posted 看,未来
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++编程经验:vector的遍历删除相关的知识,希望对你有一定的参考价值。
关于这个话题,网上有太多的版本了。
甚至我自己的博客中也出现了三个版本,以后,以这一篇的版本为准:
正式版本
void del_vec_foreach(vector<int>& vec,int target) {
for (vector<int>::iterator it = vec.begin(); it != vec.end();) {
if (*it == target) {
it = vec.erase(it);
}
else {
++it;
}
}
}
错误版本一:
void del_vec_foreach(vector<int>& vec,int target) {
for (vector<int>::iterator it = vec.begin(); it != vec.end();it++) {
if (*it == target) {
it = vec.erase(it);
}
}
}
错误版本二:
void del_vec_foreach(vector<int>& vec,int target) {
for (vector<int>::iterator it = vec.begin(); it != vec.end();) {
if (*it == target) {
vec.erase(it++);
}
else {
++it;
}
}
}
下面两个版本和第一个版本看着几乎差不多,不解释,运行一下见分晓,
答应我,以后不要再在这个问题上栽跟头了!!!
以上是关于C++编程经验:vector的遍历删除的主要内容,如果未能解决你的问题,请参考以下文章
尝试在 Python 中重写 C++ 代码时出现问题:删除地图中的项目和“vector.erase(vector.end())”