Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Udarnik
1 / 1 / 0
Регистрация: 01.02.2013
Сообщений: 30
#1

Заполнить map - C++

22.08.2013, 23:25. Просмотров 662. Ответов 10
Метки нет (Все метки)

Как заполнить этот "мар" несколькими значениями к фамилии?
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<iostream>
using namespace std;
#include<vector>
#include <map>
#include <string>
 
void main()
    vector <int>v1 (3,4) ;
 
    int i=0;
    multimap <string,vector<int>>::iterator it1;
   multimap <string,vector<int>> m1;
    typedef pair <string,vector<int>> pair1;
 
 
 
    for(int i=0;i<5;i++){
    m1.insert ( pair1(  "Petrov",1,2,3,5,4 ));
    m1.insert ( pair1 ( "Sidorov",9,8,7,7 ) );
    m1.insert ( pair1 ( "Semonov", 10,3,6,8,9 ) );
    }   
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.08.2013, 23:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Заполнить map (C++):

Заполнить map из потока ввода - C++
Добрый день, можно ли заполнить map&lt;key_type, value_type&gt; при помощи istream_iterator&lt;map&lt;key_type, value_type&gt;&gt;...

Заполнить контейнер map и vector данными из файла - C++
Текстовый файл содержит в себе информацию о пяти лифтах в виде: 12 900 first 10 600 second 15 700 third 20 1000 fourth 16 800...

Обращение к элементам vector, который находится в map, находящийся в map - C++
Всем добрый день! Имеется такой контейнер. Как обращаться к элементам вектора и как пушбэчить его? map &lt;int,map&lt;int,vector&lt;int&gt; &gt;...

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

Как вставить элемент и вывести элементы на экран в map<string, map<string,int>> ? - C++
У меня есть map&lt;string, map&lt;string,int&gt;&gt;, в него надо добавить элементы (типа Ivanov potato 200) Использовать именно map&lt;string,...

Как вставить map в map - C++
есть такой map map &lt; INT64 , map &lt;INT64 , map&lt; wArray , int &gt; &gt; &gt; tMenu; как его заполнить? пробовал так ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Semyon2105
1 / 1 / 0
Регистрация: 16.12.2012
Сообщений: 6
23.08.2013, 00:13 #2
Попробуйте m1.emplace({"Name", {1, 2, 3}})

Добавлено через 9 минут
точнее m1.insert(pair1("Name", vector<int>{1, 2, 3}))
0
Udarnik
1 / 1 / 0
Регистрация: 01.02.2013
Сообщений: 30
23.08.2013, 00:21  [ТС] #3
Цитата Сообщение от Semyon2105 Посмотреть сообщение
Попробуйте m1.emplace({"Name", {1, 2, 3}})

Добавлено через 9 минут
точнее m1.insert(pair1("Name", vector<int>{1, 2, 3}))
Ни первый, ни второй способ непомог, только число "3" заносит.
0
DiffEreD
1430 / 767 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
23.08.2013, 00:22 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <vector>
#include <string>
#include <map>
 
int main()
{
    using map = std::map<std::string, std::vector<int>>;
 
    map mymap;
    mymap.insert(std::make_pair("One", std::vector<int>{1,2,3,4,5}));
    mymap.insert(std::make_pair("Two", std::vector<int>{10,20,30,40,50}));
 
    for(const auto& i : mymap)
    {
        std::cout << i.first << std::endl;
        for(int j : i.second) std::cout << j << " ";
        std::cout << std::endl;
    }
 
    std::cout << std::endl;
    return 0;
}
0
Semyon2105
1 / 1 / 0
Регистрация: 16.12.2012
Сообщений: 6
23.08.2013, 00:27 #5
Цитата Сообщение от Udarnik Посмотреть сообщение
Ни первый, ни второй способ непомог, только число "3" заносит.
Если второй не работает, то нету поддержки initializer_list в компиляторе. Компилятор VC++? Если да, то придется вручную создавать вектор и потом передавать его в пару по имени переменной.
0
Udarnik
1 / 1 / 0
Регистрация: 01.02.2013
Сообщений: 30
23.08.2013, 00:39  [ТС] #6
Цитата Сообщение от DiffEreD Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <vector>
#include <string>
#include <map>
 
int main()
{
    using map = std::map<std::string, std::vector<int>>;
 
    map mymap;
    mymap.insert(std::make_pair("One", std::vector<int>{1,2,3,4,5}));
    mymap.insert(std::make_pair("Two", std::vector<int>{10,20,30,40,50}));
 
    for(const auto& i : mymap)
    {
        std::cout << i.first << std::endl;
        for(int j : i.second) std::cout << j << " ";
        std::cout << std::endl;
    }
 
    std::cout << std::endl;
    return 0;
}
Спасибо за проделаную роботу не у меня не работает.
0
Belfegor
Ghost
172 / 172 / 6
Регистрация: 16.09.2012
Сообщений: 526
23.08.2013, 00:43 #7
Цитата Сообщение от Udarnik Посмотреть сообщение
Спасибо за проделаную роботу не у меня не работает.
это с++11 обновите компилятор
0
Udarnik
1 / 1 / 0
Регистрация: 01.02.2013
Сообщений: 30
23.08.2013, 00:44  [ТС] #8
Цитата Сообщение от Semyon2105 Посмотреть сообщение
Если второй не работает, то нету поддержки initializer_list в компиляторе. Компилятор VC++? Если да, то придется вручную создавать вектор и потом передавать его в пару по имени переменной.
У меня VS2010 C++
0
Semyon2105
1 / 1 / 0
Регистрация: 16.12.2012
Сообщений: 6
23.08.2013, 00:45 #9
Если изначально создать вектор,
C++
1
vector<int> v(5)
и потом туда забить значения
C++
1
2
3
v.push_back(0);
v.push_back(1);
...
И потом сделать пару,
C++
1
m.insert(pair1("Name", v));
то должно работать на любом компиляторе
0
Udarnik
1 / 1 / 0
Регистрация: 01.02.2013
Сообщений: 30
23.08.2013, 00:52  [ТС] #10
Цитата Сообщение от Semyon2105 Посмотреть сообщение
Если изначально создать вектор,
C++
1
vector<int> v(5)
и потом туда забить значения
C++
1
2
3
v.push_back(0);
v.push_back(1);
...
И потом сделать пару,
C++
1
m.insert(pair1("Name", v));
то должно работать на любом компиляторе
Вот тепер да.
0
DiffEreD
1430 / 767 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
23.08.2013, 01:00 #11
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
#include <iostream>
#include <vector>
#include <string>
#include <map>
 
int main()
{
    typedef std::multimap<std::string, std::vector<int>> map;
    typedef std::multimap<std::string, std::vector<int>>::iterator it;
 
    map mymap;
 
    int arr1[] = {1,2,3,4,5};
    int arr2[] = {10,20,30,40,50};
    mymap.insert(std::make_pair("One", std::vector<int>(arr1, arr1 + sizeof arr1/sizeof(int))));
    mymap.insert(std::make_pair("Two", std::vector<int>(arr2, arr2 + sizeof arr2/sizeof(int))));
 
    for(it i = mymap.begin(); i!=mymap.end(); ++i)
    {
        std::cout << (*i).first << std::endl;
        for(size_t j = 0; j<(*i).second.size(); ++j)
            std::cout << (*i).second[j] << " ";
        std::cout << std::endl;
    }
 
    system("pause");
    return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.08.2013, 01:00
Привет! Вот еще темы с ответами:

Emplace в std::map. Как добавить элемент в std::map без копирования? - C++
здравствуйте... есть ли способ не писать так: std::map&lt;int, char&gt; ksa; ksa.emplace(std::piecewise_construct, ...

Приведение map<int, B> к map<int, A> - C++
class A {}; class B : public A {}; unordered_map&lt;int, shared_ptr&lt;B&gt; &gt; bs; Как привести bs к unordered_map&lt;int, shared_ptr&lt;A&gt;...

Работа с map<string, map<string, string>> - C++
Всем привет! Что-то запарился в неожиданном месте... Есть тип данных, который выглядит так: map&lt;string, map&lt;string,string&gt;&gt; Мне...

Map'ы - C++
Здравствуйте! Расскажите пожалуйста, как пользоваться map'ами?


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
23.08.2013, 01:00
Ответ Создать тему
Опции темы

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