Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как заставить символ двигаться по консоли? http://www.cyberforum.ru/cpp-beginners/thread1648509.html
Приветствую всех! Есть листинг программы, цель её - заставить символ "|" двигаться вправо при нажатии "D" или "d". Но я не пойму логику в отдельных моментах. Подскажите, пож-та, что и как тут....
C++ Разработать, написать и отладить программу, удовлетворяющую перечисленным ниже требованиям Разработать, написать и отладить программу, удовлетворяющую перечисленным ниже требованиям. С++ Visual Studio Очень срочно Нужен только текст программы http://www.cyberforum.ru/cpp-beginners/thread1648491.html
C++ Использование конструктора с параметром istream
Данное упражнение с книжки Липпмана. Нужно добавить в класс конструктор с параметром istream, а потом в программе конструктор с данным параеметром Sales_data(std::istream &); //добавление...
C++ Где найти описание и примеры работы с библиотеками Flex и Bison?
Подскажите,где можно найти описание Flex и Bison C++. Желательно,чтобы был пример еще.
C++ Переименование группы файлов по шаблону http://www.cyberforum.ru/cpp-beginners/thread1648462.html
Народ, создаю отдельную тему, т.к. вопрос изменился, и если кто то из новичков сталкнется с такой же проблемой и вопросом, как я, дабы проще было найти нужную инфу. В общем так, я писал ранее про...
C++ Не отображается результат в консоли Что не так ? Использую MSVS15 #include <iostream> using namespace std; int main() { const int ARRAY_LEN = 5; int MyNumbers = { -55, 35, 9889, 0, 45 }; подробнее
Croessmah
++Ͻ
14776 / 8452 / 1605
Регистрация: 27.09.2012
Сообщений: 20,800
Записей в блоге: 2
Завершенные тесты: 1
27.01.2016, 02:23 0

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

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

Ответ

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
#include <map>
 
 
 
struct Test
{
    Test(int x): x_(x) { std::cout << "ctor" << std::endl ;}
    Test(const Test& src): x_(src.x_) { std::cout << "cctor" << std::endl ;}
    Test& operator=(const Test& src) { x_ = src.x_ ; std::cout << "ass" << std::endl ; return *this; }
    ~Test() { std::cout << "dtor" << std::endl ;}
    int x_ ;
} ;
 
 
std::ostream& operator<<(std::ostream& stream, const Test& obj)
{
    return stream << obj.x_ ;
}
 
 
int main()
{
    std::map<int, Test> ksa;
    ksa.emplace(1, 10) ;
    ksa.emplace(2, 5) ;
    ksa.emplace(3, 6) ;
    ksa.emplace(4, 7) ;
    for(auto& e: ksa)
        std::cout << e.first << " : " << e.second << std::endl ;
}
http://rextester.com/XGLFD32583

никакого копирования.

Вернуться к обсуждению:
Emplace в std::map. Как добавить элемент в std::map без копирования?
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.01.2016, 02:23

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

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

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

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