我想删除向量v中所有包含在v2中的元素;
这个解决方案好吗,还是应该使用其他方法?
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
std::vector<int> v = {1,2,3,4,5,1,2};
std::vector<int> v2 = {1,2,3};
v.erase(std::remove_if(v.begin(), v.end(), [v2](int x)
{
auto it = std::find(v2.begin(), v2.end(), x);
return it != v2.end();
}), v.end());
for (auto i : v)
{
std::cout<<i<< " ";
}
return 0;
}
输出:
4 5