У меня есть некоторые данные с ключом, связанным с каждым элементом данных. Ключ состоит из двух частей: назовем их color и id. Я хочу перебрать контейнер по цвету, чтобы ускорить рендеринг, а также я хочу найти элементы в контейнере только по идентификатору.
Я попытался использовать для этого std :: map с ключом
class MyKey {
public:
int color;
int id;
bool operator<(...)
bool operator==(...)
};
Но я не могу предоставить оператор <, который сохранял бы данные, отсортированные по цвету, и в то же время позволял бы map :: find работать только с идентификатором (т. Е. Без информации о цвете). </p>
Я хочу, чтобы операции вставки и поиска выполнялись быстро (например, O (log (n))).
Есть идеи, какой контейнер я мог бы использовать для реализации этого?