我有两个结构。一个用于在2D坐标系中存储点:
struct Coordinate {
int x, y;
Coordinate() {};
Coordinate(int x, int y) : x(x), y(y) {};
} cr;
另一个用于存储坐标和列号。
struct BlobInformation {
Coordinate point;
int PixelValues[6];
int line;
int column;
char value;
} bi;
我正在尝试创建一个将Coordinate存储为Key和BlobInformation内容作为值的地图。
当我尝试插入键值对时,它给出了以下错误:
Severity Code Description Project File Line Suppression State
Error C2678 binary '<': no operator found which takes a left-hand operand of type 'const Coordinate' (or there is no acceptable conversion) braille_obr c:\program files (x86)\microsoft visual studio 14.0\vc\include\xstddef 240
答案 0 :(得分:0)
std::map
是一个已排序的容器,即它使用<
运算符对其键进行排序。 Coordinate
没有实现一个,这就是你看到这个错误的原因。您可以实施它(bool operator<(const Coordinate& rhs);
,或使用std::unordered_map
,但不对其键进行排序。