创建用于存储结构坐标作为键和行号作为值的映射

时间:2016-03-21 18:53:53

标签: c++ visual-c++ mfc

我有两个结构。一个用于在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 

1 个答案:

答案 0 :(得分:0)

std::map是一个已排序的容器,即它使用<运算符对其键进行排序。 Coordinate没有实现一个,这就是你看到这个错误的原因。您可以实施它(bool operator<(const Coordinate& rhs);,或使用std::unordered_map,但不对其键进行排序。