2016-03-21 5 views
0

Ich habe zwei Strukturen. Man einen Punkt im 2D-Koordinatensystem zum Speichern von:Erstellen einer Karte zum Speichern von Strukturkoordinaten als Schlüssel und Zeilennummer als Wert

struct Coordinate { 
int x, y; 
Coordinate() {}; 
Coordinate(int x, int y) : x(x), y(y) {}; 
} cr; 

einer anderen für die zusammen mit ihm und Koordinieren Spaltennummer speichert.

Ich versuche, eine Karte zu erstellen, die Coordinate als Key und BlobInformation Inhalte als Wert speichert.

Wenn ich versuche, den Schlüssel, Wert-Paar einzufügen gibt es mir die folgende Fehlermeldung:

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

Bitte lesen Sie Ihre Frage und fragen Sie sich "Könnte ich das beantworten?" –

+0

'Coordinate' muss eine Überladung für' Operator

Antwort

0

std::map ist ein sortierte Behälter, das heißt es sortiert seinen Schlüssel mit dem < Operator. Coordinate hat keine implementiert, deshalb sehen Sie diesen Fehler. Sie können es implementieren (bool operator<(const Coordinate& rhs);, oder verwenden Sie eine std::unordered_map, die ihre Schlüssel nicht sortiert.

Verwandte Themen