Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
tapochka
40 / 40 / 17
Регистрация: 25.04.2014
Сообщений: 499
1

Emplace в std::map. Как добавить элемент в std::map без копирования?

27.01.2016, 02:07. Просмотров 1757. Ответов 21
Метки нет (Все метки)

здравствуйте... есть ли способ не писать так:
C++
1
2
3
4
std::map<int, char> ksa;
ksa.emplace(std::piecewise_construct,
    std::forward_as_tuple(1),
    std::forward_as_tuple('a'));
чтобы добавить элемент без копирования в std::map?

пробовал:
C++
1
2
typedef std::map<int, char> char_map;
typedef std::invoke<&char_map::emplace, 1, 'a'>::type please;
все валится...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.01.2016, 02:07
Ответы с готовыми решениями:

Std::map::emplace
То ли я туплю/криво поставил компилятор, то ли это emplace синтаксис кривой,...

Возможно ли создать контейнер std::map, в котором в качестве значения была бы ссылка на std::map?
Здравствуйте. Возможно ли создать контейнер std::map, в котором в качестве...

Стоит ли очищать в деструкторе std::map , std::vecotor?
У меня ещё один нубский вопрос :) Вот если в классе объявлены мапы и вектора,...

std::map, std::vector и порядок обхода коллекции
Здравствуйте, уважаемые! Вопрос следующий - если я сохраняю какие-то значения...

Std::vector добавить новый элемент собственного класса без использования конструктора копирования
Всем привет! Есть один класс, который я хочу хранить в std::vector. Создать...

21
gray_fox
What a waste!
1553 / 1258 / 166
Регистрация: 21.04.2012
Сообщений: 2,636
Завершенные тесты: 3
30.01.2016, 00:32 21
Цитата Сообщение от ForEveR Посмотреть сообщение
C++
1
2
auto f = std::bind(&std::map<int, int>::emplace<int, int>, std::ref(map), 1, 2);
f();
похоже что при вызове "забинденные" параметры передаются как lvalue, а типы аргументов у "забинденного" метода - rvalue ref.

Добавлено через 2 минуты
Кстати вот первая же ссылка на тему: http://stackoverflow.com/questions/4...hrough-stdbind .
2
ForEveR
В астрале
Эксперт С++
7995 / 4754 / 651
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
30.01.2016, 11:27 22
gray_fox, Вот как... Ну следовало ожидать, что все будет не так уж просто. Спасибо.
0
30.01.2016, 11:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.01.2016, 11:27

std::map find. Получить ключ(элемент) и как записать все данные при объявлений?
Вопрос первый: как получить ключ контейнера map по данным? например: // id,...

Как формируется размер std::map?
ожидал увидеть размер 18. По 5 байт на две строки и по 4 байта на два int-а....

Как реализован .end() std::map?
Как реализован .end() std::map? Не понимаю, какая у него реализация. Либо он...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru