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

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

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

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

22.08.2013, 23:25. Просмотров 648. Ответов 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 ) );
    }   
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.08.2013, 23:25     Заполнить map
Посмотрите здесь:

Заполнить 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...

map<> в C, не в C++! - C++
всем привет! обращаюсь как Вам, так как не могу найти ответ в инете. если локанично: нужен map в C. в C++ уже есть класс и...

шаблон map - C++
пожалуйста дайте ссылку или напишите пример шаблона класса map с итератором.

Использование map - C++
Как вставлять элемент в map?Пишет кучу ошибок. #include &lt;iostream&gt; #include &lt;map&gt; using namespace std; struct four { ...

вопрос по map - C++
//если я напишу map&lt;string,vector&lt;int&gt; &gt; lol; string s; //то например: lol; // уже будет вектором считаться?

Map stl - C++
Не могу понять, почему не находит через h1.find(argv). когда argv == &quot;-o&quot; vs пишет &quot;itr = (0xcdcdcdcd &lt;Ошибка при чтении символов...

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

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

Добавлено через 9 минут
точнее m1.insert(pair1("Name", vector<int>{1, 2, 3}))
Ни первый, ни второй способ непомог, только число "3" заносит.
DiffEreD
1429 / 766 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
23.08.2013, 00:22     Заполнить map #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;
}
Semyon2105
1 / 1 / 0
Регистрация: 16.12.2012
Сообщений: 6
23.08.2013, 00:27     Заполнить map #5
Цитата Сообщение от Udarnik Посмотреть сообщение
Ни первый, ни второй способ непомог, только число "3" заносит.
Если второй не работает, то нету поддержки initializer_list в компиляторе. Компилятор VC++? Если да, то придется вручную создавать вектор и потом передавать его в пару по имени переменной.
Udarnik
1 / 1 / 0
Регистрация: 01.02.2013
Сообщений: 30
23.08.2013, 00:39  [ТС]     Заполнить map #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;
}
Спасибо за проделаную роботу не у меня не работает.
Belfegor
Ghost
172 / 172 / 6
Регистрация: 16.09.2012
Сообщений: 526
23.08.2013, 00:43     Заполнить map #7
Цитата Сообщение от Udarnik Посмотреть сообщение
Спасибо за проделаную роботу не у меня не работает.
это с++11 обновите компилятор
Udarnik
1 / 1 / 0
Регистрация: 01.02.2013
Сообщений: 30
23.08.2013, 00:44  [ТС]     Заполнить map #8
Цитата Сообщение от Semyon2105 Посмотреть сообщение
Если второй не работает, то нету поддержки initializer_list в компиляторе. Компилятор VC++? Если да, то придется вручную создавать вектор и потом передавать его в пару по имени переменной.
У меня VS2010 C++
Semyon2105
1 / 1 / 0
Регистрация: 16.12.2012
Сообщений: 6
23.08.2013, 00:45     Заполнить map #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));
то должно работать на любом компиляторе
Udarnik
1 / 1 / 0
Регистрация: 01.02.2013
Сообщений: 30
23.08.2013, 00:52  [ТС]     Заполнить map #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));
то должно работать на любом компиляторе
Вот тепер да.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.08.2013, 01:00     Заполнить map
Еще ссылки по теме:

Не компилируется map - C++
Здравствуйте. Значит, компилирую проект. Компилируется. Добавляю в члены класса такую строку: map&lt;int, int&gt; maps; Все, не...

Map Hack На С++ - C++
Народ как можно написать Map Hack на С++ для игры Warcraft 3, ну как бы чит для сетевой игры, помогите пожалуйста

Map iterator - C++
map&lt;string, int&gt; m; m.insert(pair&lt;string, int&gt;(&quot;a&quot;, 1)); map&lt;string, int&gt;::iterator it = m.begin(); cout &lt;&lt; *it; ...

Считать в map - C++
Даны координат точки и угол, в файле, то есть там 1 2 45. как это считать в map для последующей работы. #include &quot;stdafx.h&quot; #include...

Сортировка map - C++
Здрасьте. Есть map (я с ним ещё плохо знаком) map &lt;string, list&lt;string&gt; &gt; data; задача - отсортировать списки в нём (методом sort()). ...


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

Или воспользуйтесь поиском по форуму:
DiffEreD
1429 / 766 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
23.08.2013, 01:00     Заполнить map #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;
}
Yandex
Объявления
23.08.2013, 01:00     Заполнить map
Ответ Создать тему
Опции темы

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