8 / 8 / 5
Регистрация: 28.10.2012
Сообщений: 135
|
||||||||||||||||
1 | ||||||||||||||||
Используя алгоритм сделать "реверс" элемента контейнера map31.03.2017, 16:52. Показов 2440. Ответов 7
Пробывал вот так (std::transform
П.С Интересуют именно алгоритмы, ибо без них можно так например:
0
|
31.03.2017, 16:52 | |
Ответы с готовыми решениями:
7
Из каждого элемента контейнера map вычесть среднее арифметическое контейнера Map : как по номеру элемента получить сам элемент контейнера? Найти элементы ключами контейнера map из заданного диапазона и удалить их из контейнера Найти среднее арифметическое контейнера map и добавить его на заданную позицию контейнера Используя алгоритм search() определить значения из контейнера Student попавших в контейнер Person |
Любитель чаепитий
|
||||||
31.03.2017, 16:58 | 2 | |||||
Сообщение было отмечено nofx как решение
Решение
просто надо куда-то вставлять элемент, там используется
operator = для присвоения элемента, а у итератора std::map нет такого оператора для value_type , временные объекты тут не при чем.http://rextester.com/PTK76812
0
|
8 / 8 / 5
Регистрация: 28.10.2012
Сообщений: 135
|
||||||
31.03.2017, 18:04 [ТС] | 3 | |||||
- для pair определен operator=, этот же класс является итератором для map, верно?
utility.h
0
|
Любитель чаепитий
|
|
31.03.2017, 19:16 | 4 |
верно, но в
std::map у итератора в value_type (std::pair ) первый элемент константный, то есть std::pair<const Key, T> , как вы туда что-то запишете?во вторых у std::map не выделяется память автоматически с инкрементом итератора, поэтому begin без end алгоритму можно передавать только тогда, когда вы уверены, что хватит места для этого.я имею ввиду алгоритмы, которым надо начало контейнера указывать.
0
|
8 / 8 / 5
Регистрация: 28.10.2012
Сообщений: 135
|
|
31.03.2017, 22:33 [ТС] | 5 |
- да, константный. Получается нельзя писать в такой итератор? Видимо да.
- только при вставке элемента автоматом. Зарезервировать нельзя как в векторе
0
|
31.03.2017, 22:40 | 6 |
Шаблоны на этапе компиляции преобразовываются в типизированные классы, при этом генерируется новое имя для класса, часто имя зависит от типа. У тебя конечный тип получается (например) map_string_int, который содержит пары pair_string_int. А ты в него пытаешься записать пару pair_int_string, как будто у тебя контейнер имеет тип map_int_string. Но это 2 совершенно разных типа, которые ничего друг о друге на знают. Так понятней?
0
|
8 / 8 / 5
Регистрация: 28.10.2012
Сообщений: 135
|
||||||
31.03.2017, 23:45 [ТС] | 7 | |||||
- где именно такое написано? функция rotate_pair возвращает "правильный" тип pair<int, string>. Я вроде бы понял проблему, но она же не в этом, а в том что алгоритм transform требует в своей реализации "output iterator"
Добавлено через 8 минут
0
|
01.04.2017, 08:09 | 8 |
я подумал, что в твоем коде в первом посте так делается, сейчас посмотрел, там имена map'ов mis и msi, не сразу отличишь, сбивает с толку.
0
|
01.04.2017, 08:09 | |
01.04.2017, 08:09 | |
Помогаю со студенческими работами здесь
8
Недопонимание контейнера map Использование контейнера map Вывод контейнера map Использование контейнера map Удалить элементы из контейнера map Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |