Здравствуйте, minorlogic, Вы писали:
M>Здравствуйте, Сыроежка, Вы писали:
С>>Как проще выполнить реверсию значений элементов для заданного контейнера std::map? То есть ключи остаются на месте, а меняются в обратном порядке отображаемые значения.
M>std::map хранит пары значений ключей, как элемент. Но можно выкрутиться использовав "iterator adaptor" который ходит по мутабельным значениям и применить стандартный reverse.
Проблема в том, что в стандарте нет такого адаптера итератора. Поэтому лучше ввести форму этого алгоритма с предикатом. Тогда не только можно использовать с контейнером sttd::map, но и решать задачи, когда для последовательного контейнера нужно реверсировать не весь элемент целиком, а, допустим, его подчлены. То есть, например, если у вас элементом является некоторая структуру, то нужно реверсировать не всю структуру, а лишь отдельные ее члены.
Сейчас эту задачу даже для последовательного контейнера нельзя решить с помощью стандартного аллгоритма, так как у пользователя нет возможности управлять его работой. Ежели появится форма этого алгоритма с предикатом, то пользователь в предикате может задавать требуемые операции.
Здравствуйте, Сыроежка, Вы писали:
С>Проблема в том, что в стандарте нет такого адаптера итератора.
Я не утверждал что есть, я лишь предложил STL way решение.
С> Поэтому лучше ввести форму этого алгоритма с предикатом. Тогда не только можно использовать с контейнером sttd::map, но и решать задачи, когда для последовательного контейнера нужно реверсировать не весь элемент целиком, а, допустим, его подчлены. То есть, например, если у вас элементом является некоторая структуру, то нужно реверсировать не всю структуру, а лишь отдельные ее члены.
Не лучше. Универсальнее использовать адапторы итераторов которые могут ссылаться на class members.
С>Сейчас эту задачу даже для последовательного контейнера нельзя решить с помощью стандартного аллгоритма, так как у пользователя нет возможности управлять его работой. Ежели появится форма этого алгоритма с предикатом, то пользователь в предикате может задавать требуемые операции.
Порассуждайте не над возможностью , а над целесообразностью.
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[4]: Разместить в обратном порядке отображаемые значения s
Здравствуйте, minorlogic, Вы писали:
M>Здравствуйте, Сыроежка, Вы писали:
С>>Проблема в том, что в стандарте нет такого адаптера итератора. M>Я не утверждал что есть, я лишь предложил STL way решение.
С>> Поэтому лучше ввести форму этого алгоритма с предикатом. Тогда не только можно использовать с контейнером sttd::map, но и решать задачи, когда для последовательного контейнера нужно реверсировать не весь элемент целиком, а, допустим, его подчлены. То есть, например, если у вас элементом является некоторая структуру, то нужно реверсировать не всю структуру, а лишь отдельные ее члены. M>Не лучше. Универсальнее использовать адапторы итераторов которые могут ссылаться на class members.
С>>Сейчас эту задачу даже для последовательного контейнера нельзя решить с помощью стандартного аллгоритма, так как у пользователя нет возможности управлять его работой. Ежели появится форма этого алгоритма с предикатом, то пользователь в предикате может задавать требуемые операции.
M>Порассуждайте не над возможностью , а над целесообразностью.
Разыменованный адаптер итератора может ссылаться лишь на одно данное. Поэтому ваше предложение крайне ограниченное. А использование предиката и использование стандартного итератора контейнера делает решение задачи прозрачной.
Здравствуйте, SleepyDrago, Вы писали:
SD>Предлагаю банить в /forum/cpp/* по слову клиппер в сообщении за необратимое поражение мозга оным клиппером.
Да его за оверквотинг тут уже с полтора десятка раз банхаммером приложить следовало.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока