我正在尝试编写一个在 C++ 中使用哈希表的程序。基本思想是我有很多数据点,我想使用一个哈希表,这样给定一个新点,我可以知道它是否已经存在。但是其中有一些错误,我真的不知道如何修复它。(错误消息:将 'const Point' 作为 'bool Point::operator==(const Point&)' 的 'this' 参数传递会丢弃限定符)提前致谢。
#include <iostream>
#include <unordered_map>
using namespace std;
class Point {
public:
Point(int _x, int _y):x(_x), y(_y) {}
bool operator==(const Point& lhs)
{ return this->x==lhs.x && this->y ==lhs.y; }
private:
int x;
int y;
};
int main ()
{
Point p1=Point(1,2);
Point p2=Point(2,3);
Point p3=Point(4,5);
unordered_map<Point,bool> mymap = {{p1,true},{p2,true},{p3,true} };
Point p4=Point(1,2);
unordered_map<Point,bool>::const_iterator got = mymap.find(p4);
if (got == mymap.end())
cout << "not found";
else
cout << "already exists";
cout<<endl;
return 0;
}