Добрый день
Есть контейнер элементы которого имеют какой-то атрибут, пусть цвет. Значение атрибута не уникально, напр в исходном контейнере 4 элемента с красным цветом, 2 с синим и.т.п.
Нужно: имея элемент быстро найти все с тем же цветом. напр элемент красный - пробежаться по всем остальным красным. Исходный контейнер сортировать/изменять нельзя, создавать любые доп данные - можно.
Спасибо
Ну у меня в голове родился такой интересный костыль. Если тебе надо быстро пройтись по всем элементам но не критична скорость добавления/удаления новых элементов и не жалко продублировать данные то вот как можно замутить через-жопу:
QList<Элемент> - Список элементов.
QMap<Атрибут,*QList<Элемент> > - Вот здесь будем хранить дублированные данные.
Вот у нас есть элемент и нам надо пройтись по всем таким же элементам с таким же атрибутом. Типа псевдокод:
QList<Элемент> *список = QMap.value(Элемент.Атрибут);
Ну и дальше foreach список с проверкой на то что элемент не равняется первоначальному.
Ну и при вставке и удалении надо будет синхронизовать с QMap<Атрибут,*QList<Элемент> > но если этот контейнер и дополнительный вынести в отдельный класс то можно там все так красиво в обертку завернуть =).