剔除一个vector中与另一个vector相同的元素
时间: 2024-05-03 16:20:42 浏览: 79
soft3d:一个简单的软件3d渲染器
可以使用C++的STL库中的算法函数erase()和remove()来实现。具体步骤如下:
1.定义两个vector:A和B;
2.使用STL库中的算法函数remove()和erase(),删除A中与B相同的元素。代码如下:
```
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
vector<int> A = {1, 2, 3, 4, 5, 6};
vector<int> B = {3, 5, 7};
auto it = remove_if(A.begin(), A.end(), [&](int x) {
return find(B.begin(), B.end(), x) != B.end();
});
A.erase(it, A.end());
for(auto& i : A)
cout << i << " ";
cout << "\n";
return 0;
}
```
在这段代码中,首先使用了C++11的Lambda表达式,其中find()函数的作用是找到B中是否包含x这个元素。然后,将这个Lambda表达式作为remove_if()函数的第三个参数。最后,使用erase()函数删除A中与B相同的元素。
输出结果:
```
1 2 4 6
```
阅读全文