Ich habe einige Daten mit einem Schlüssel, der mit jedem Datenelement verbunden ist. Der Schlüssel besteht aus zwei Teilen: nennen wir sie color und id. Ich möchte den Container nach Farbe iterieren, um das Rendering zu beschleunigen, und ich möchte auch Elemente im Container allein nach der ID finden.
Ich habe versucht, std::map für diesen Zweck mit einem Schlüssel zu verwenden
class MyKey {
public:
int color;
int id;
bool operator<(...)
bool operator==(...)
};
Aber ich kann keinen <-Operator zur Verfügung stellen, der die Daten nach Farbe sortiert hält und gleichzeitig map::find erlaubt, nur mit der ID zu arbeiten (d.h. keine Informationen über die Farbe).
Ich möchte, dass sowohl die Einfüge- als auch die Suchoperationen schnell sind (z. B. O(log(n)).
Irgendwelche Ideen, welche Art von Container ich verwenden könnte, um dies zu implementieren?