我有以下C ++类,
class rec
{
public:
int width;
int height;
};
在我的main函数中,我有一个带有rec
个对象的向量,
rec r1,r2,r3;
r1.height = r1.width = 1;
r2.height = r2.width = 2;
r3.height = r3.width = 3;
vector<rec> rvec = { r1,r2,r3 };
现在我要使用以下方法调用
从rvec
中删除一个项目
rvec.erase(remove(rvec.begin(), rvec.end(), r_remove), rvec.end());
但我收到了这个错误:
C2678:binary'==':找不到带左手操作数的运算符 类型'rec'(或没有可接受的转换)
答案 0 :(得分:5)
您需要为自定义数据结构rec
class rec
{
public:
int width;
int height;
bool operator==(const rec& rhs) {
return (width == rhs.width) && (height == rhs.height);
}
};
因为remove
通过operator ==