【发布时间】:2020-07-03 05:02:43
【问题描述】:
我有以下代码:我在删除函数中遇到编译错误。我想从向量中删除其元素具有x 匹配输入值x 的元素。
class A
{
int x,y;
public:
init(int a, int b)
{
x = a; y= b;
}
int getX(){return x;}
}
class B
{
public:
void add (int a, int b)
{
A a1;
a1.init(a,b);
MyVector.push_back(a1);
}
void remove(int x)
{
MyVector.erase(remove_if(MyVector.begin(), MyVector.end(),
[&vec](int x){return (vec.getX() == x);}), MyVector.end());
}
vector<A> MyVector;
}
【问题讨论】:
-
你的错误是什么?
-
classTest.cpp:72:52: 注意:PointVector::remove(int)::__lambda4 [&vec](int x){return (vec.getX() == x);}) , testVector.end()); ^ classTest.cpp:72:52: 注意:没有已知的参数 1 从“A”到“int”的转换
-
请编辑您的问题以包含错误,而不是将其放在评论中。
标签: c++ algorithm vector stl iterator