Re[3]: Однообразность в STL
От: Кодт Россия  
Дата: 07.12.04 09:48
Оценка:
Здравствуйте, Olivia, Вы писали:

O>У меня вопрос в таком случае. Расскажите, пожалуйста, почему std::multimap нельзя сортировать, ведь алгоритм сортировки применим ко всем контейнерам.


Не ко всем. STL выделяет последовательности (vector, deque, list) и ассоциативные контейнеры (set, map, multiset, multimap).

Элементы ассоциативных контейнеров уже упорядочены по ключу. Поэтому дополнительная сортировка к ним неприменима.

O>И подскажите, плизз, как обойти эту проблему: у меня задание вывести данные из multimap, упорядоченные по определенному критерию (не ключ).


Есть несколько вариантов:
1) изначально хранить в структуре, поддерживающей несколько порядков в контейнере — bimap, boost::multi_index...
2) сделать "слепок" контейнера и отсортировать. Вместо копирования значений можно брать указатели/итераторы исходного контейнера.
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.