Re[7]: Однообразность в STL
От: Кодт Россия  
Дата: 08.12.04 11:59
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Спасибо за ответ, но из ваших примеров я не могу применить ничего к своему, потому что у меня объявлен multimap и в нем уже хранятся данные:


Нужно лишь немножко подумать, а не копировать в лоб.

Что такое мультимап? Это реляционная таблица с неуникальным ключом.
Что значит дополнительная сортировка? Это добавление в таблицу ещё одной колонки с другим неуникальным ключом.
Поэтому если задача выборки в разных порядках встаёт часто — заводим структуру из 3 полей:
— первичный ключ (ключ мультимапа)
— альтернативный ключ
— данные (класс Temp)
В роли альтернативного ключа могут выступать сами данные или их члены.

Для единовременной сортировки — делаем слепок. Замени в моём коде set на multimap, и учти, что элемент мультимапа — это std::pair<const key_type,value_type>. То есть для доступа к значениям, нужно делать не (*it), а (it->second).

Вот и всё.
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.