Re[6]: Разместить в обратном порядке отображаемые значения s
От: Сыроежка  
Дата: 11.01.12 12:17
Оценка:
Здравствуйте, Marty, Вы писали:

M>Здравствуйте, Сыроежка, Вы писали:


С>>Задача простая: для заданного контейнера std::map реверсировать отображаемые значения.

M>Таки расскажите, что значит реверсировать7

С>>Хочу понять, почему такой алгоритм не включен в качестве функции-члена класса std::map. Если он не включен, то наверное предполагается, что сделать это просто с помощью стандартных алгоритмов. Ведь какие основные принципы включения или не включения алгоритмов к ачестве функций-членов контейнеров? Первое- это невозможность сделать данную операцию с помощью стандартного алгоритма. например, стандартный алгоритм std::sort требует наличия итераторов произвольного доступа. Так как в контейнере std::list итератор не является итератором произвольного доступа, то этот алгоритм включили в качестве функции-лена класса для контейнера std::list Второе — это если делать алгоритм членом класса, то можно достичь большей эффективности. Такие алгоритмы включены, например, в класс std::basic_string.

С>>Поэтому и возник вопрос, раз алгоритм reverse не включен в контейнер std::map в качестве члена класса, то наверное его можно как-то достаточно просто реализовать с помощью стандартных алгоритмов? да причем так, чтобы каждый программист не открывал для себя заново велосипед.

M>map уже сортирован по ключу. итераторов произвольного доступа нет, и, имхо, не будет, если и будут, то с временем доступа O(N).


M>и задача "реверсировать" так и не раскрыта.


Так я в первом своем сообщении, и как мне представляется, в других сообщениях, ясно сказал, что реверсировать нужно отображаемые значения, то есть mapped_type, сохранив порядок ключей.
Меня можно встретить на www.cpp.forum24.ru
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.