Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/64: Рейтинг темы: голосов - 64, средняя оценка - 4.61
1 / 1 / 0
Регистрация: 01.02.2013
Сообщений: 30

Заполнить map

22.08.2013, 23:25. Показов 11945. Ответов 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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.08.2013, 23:25
Ответы с готовыми решениями:

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

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

Поместить вектора в map и реализовать перегрузку вывода для map
Всем привет! Нужна помощь в написании программы. У меня есть вот такая прога и мне нужно каким-то образом поместить вектора в map и...

10
1 / 1 / 0
Регистрация: 16.12.2012
Сообщений: 6
23.08.2013, 00:13
Попробуйте m1.emplace({"Name", {1, 2, 3}})

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

Добавлено через 9 минут
точнее m1.insert(pair1("Name", vector<int>{1, 2, 3}))
Ни первый, ни второй способ непомог, только число "3" заносит.
0
 Аватар для DiffEreD
1458 / 795 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
23.08.2013, 00:22
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
1 / 1 / 0
Регистрация: 16.12.2012
Сообщений: 6
23.08.2013, 00:27
Цитата Сообщение от Udarnik Посмотреть сообщение
Ни первый, ни второй способ непомог, только число "3" заносит.
Если второй не работает, то нету поддержки initializer_list в компиляторе. Компилятор VC++? Если да, то придется вручную создавать вектор и потом передавать его в пару по имени переменной.
0
1 / 1 / 0
Регистрация: 01.02.2013
Сообщений: 30
23.08.2013, 00:39  [ТС]
Цитата Сообщение от 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
Ghost
 Аватар для Belfegor
174 / 174 / 40
Регистрация: 16.09.2012
Сообщений: 526
23.08.2013, 00:43
Цитата Сообщение от Udarnik Посмотреть сообщение
Спасибо за проделаную роботу не у меня не работает.
это с++11 обновите компилятор
0
1 / 1 / 0
Регистрация: 01.02.2013
Сообщений: 30
23.08.2013, 00:44  [ТС]
Цитата Сообщение от Semyon2105 Посмотреть сообщение
Если второй не работает, то нету поддержки initializer_list в компиляторе. Компилятор VC++? Если да, то придется вручную создавать вектор и потом передавать его в пару по имени переменной.
У меня VS2010 C++
0
1 / 1 / 0
Регистрация: 16.12.2012
Сообщений: 6
23.08.2013, 00:45
Если изначально создать вектор,
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
1 / 1 / 0
Регистрация: 01.02.2013
Сообщений: 30
23.08.2013, 00:52  [ТС]
Цитата Сообщение от 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
1458 / 795 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
23.08.2013, 01:00
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.08.2013, 01:00
Помогаю со студенческими работами здесь

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

Обращение к map, который внутри другого map
std::map&lt;int, std::map&lt;std::string, int&gt;&gt; m1; std::map&lt;std::string, int&gt; m2; void main() { m1 = m2; m2 = 7; ...

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

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

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


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru