前言
今天做题时发现一道很多人都RE的题,是用 v e c t o r vector vector做的,叫删除 x x x。
作者做了半天,一找答案 查资料才发现
e
r
a
s
e
erase
erase删除的是
p
o
s
pos
pos上的元素。。。
所以就有了今天的文章。
code
#include<bits/stdc++.h>
using namespace std;
int main(){
vector<int> a;
int n, x;
cin >> n >> x;
for (int i = 0;i < n;i++){
int tmp;
cin >> tmp;
a.push_back(tmp);
}
vector<int>::iterator itor;
for (itor = a.begin();itor < a.end();itor++){
if (*itor == x){
itor = a.erase(itor);
}
}
for (itor = a.begin();itor < a.end();itor++){
cout << *itor << " ";
}
return 0;
}
这里用的是迭代器,但是实际上有更简单的写法,就是判断a[i]是不是x,如果不是,就输出。
本文讲述了作者在编程中遇到的问题,即如何在C++vector中删除特定元素,以及对erase方法的理解误区。作者强调了迭代器的使用,并指出了一种简洁的判断并输出vector元素的方法。
293





