我正在尝试从向量中删除一个元素。
vector<Foo> vecFoo;
Foo f1;
Foo f2;
Foo f3;
vecFoo.push_back(f1);
vecFoo.push_back(f2);
vecFoo.push_back(f3);
Foo* pF1 = &f1;
vecFoo.erase(std::remove(vecFoo.begin(), vecFoo.end(), *pF1), vecFoo.end());
最后一行会产生大量的C2784错误。我究竟做错了什么?
(是的,这个示例有些人为,但是本质是我已经有了指向向量中元素的指针,并且我想删除该元素。)
最佳答案
您是否缺少比较运算符?
class Foo
{
public:
bool operator==(Foo const& rhs) const { return true;}
... Other stuff
};