我想使用功能查找来在struct向量(带有属性x和y)中查找元素,
但是我遇到了没有匹配运算符==的错误。我试图重新定义它,但仍然收到相同的错误消息:
错误:与“ operator ==”不匹配(操作数类型为«const coordenates»和«const coordenates»){返回* __ it == _M_value; }
struct coordenates {
int x;
int y;
bool operator ==(const coordenates &a){
if (x == a.x && y == a.y)
{return true;}
return false;
}
bool findInVector(const std::vector<coordenates> &vecOfElements, const int &i, const int &j)
{
bool presence;
coordenates element;
element.x = i;
element.y = j;
if(std::find(vecOfElements.begin(), vecOfElements.end(), element) == vecOfElements.end()) {
presence = false;}
else{presence = true;}
return presence;
}
答案 0 :(得分:4)
它作为const coordinates
传递,因此您的operator==
也必须标记为const
才能匹配:
bool operator ==(const coordenates &a) const