Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
31 / 31 / 8
Регистрация: 17.09.2012
Сообщений: 186
1

Не могу вставить элемент в second(vector) мультимапа. multimap<string, vector<string>>

14.04.2017, 19:46. Показов 982. Ответов 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
24
25
26
27
28
29
#include <iostream>
#include <map>
#include <vector>
#include <algorithm>
#include <string>
#include <iterator>
 
int main()
{
    std::multimap<std::string, std::vector<std::string>> familyMap;
 
    std::string family;
    while(std::cin >> family) {
        std::string child;
        while (std::cin >> child)
            familyMap.insert(family, back_inserter(child));
            //familyMap[family].push_back(child);
        std::cin.clear();
    }
 
    for(const auto &fam : familyMap) {
        std::cout << fam.first << " : ";
        for(const auto &chl : fam.second)
            std::cout << chl << " ";
        std::cout << std::endl;
    }
 
    return EXIT_SUCCESS;
}
Измучился уже. Не жрет и все. И emplace пробовал и итераторы. Ошибка на 16 строке. Не может подобрать функцию под вызов.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.04.2017, 19:46
Ответы с готовыми решениями:

Доступ к паре в map<string, vector<pair<string, string>>>Temp
Подскажите пожалуйста как получить данные в векторе пар ? void showData(const map&lt;string,...

Перенос данных c vector<string> в vector<double>
Необходимо перенести введенные данные в vector&lt;string&gt; в vector&lt;double&gt;, я реализовал это вот так:...

Какое одинаковое значение можно вернуть из функций <string> f () и vector < <string> > f()?
Понятное дело, что всё обсуждение будет вертеться вокруг аналога NULL. char* f_0 () { return...

Как перебрать все элементы в map<string, vector<string>>
Доброго времени суток. Решаю следующую задачу: В файле есть сведения об автомобилях: марка...

4
шКодер самоучка
2136 / 1850 / 904
Регистрация: 09.10.2013
Сообщений: 4,041
Записей в блоге: 7
14.04.2017, 19:56 2
FliXis, как то так
C++
1
2
3
4
5
6
7
8
9
10
11
12
while(std::cin >> family) {
    std::string child;
    auto current = familyMap.emplace(
        std::make_pair(
            family,
            std::vector<string>()
        )
    );
    while (std::cin >> child)
        current->second.emplace_back(child);
    std::cin.clear();
}
1
31 / 31 / 8
Регистрация: 17.09.2012
Сообщений: 186
14.04.2017, 20:05  [ТС] 3
Благодарю!
Выглядит конечно дико =)
0
шКодер самоучка
2136 / 1850 / 904
Регистрация: 09.10.2013
Сообщений: 4,041
Записей в блоге: 7
14.04.2017, 20:09 4
Лучший ответ Сообщение было отмечено FliXis как решение

Решение

Цитата Сообщение от FliXis Посмотреть сообщение
Выглядит конечно дико =)
Можно попробовать сократить.
C++
1
2
3
4
5
6
7
8
9
10
while(std::cin >> family) {
    std::string child;
    auto& current = familyMap.emplace(
            family,
            std::vector<string>()
    )->second;
    while (std::cin >> child)
        current.emplace_back(child);
    std::cin.clear();
}
но я не уверен, что это будет работать корректно.
1
31 / 31 / 8
Регистрация: 17.09.2012
Сообщений: 186
14.04.2017, 20:15  [ТС] 5
Вполне работает! Спасибо!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.04.2017, 20:15

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Вывод элементов map <string,vector<string>>
Доброго времени суток. Как можно вывести массив map &lt;string,vector&lt;string&gt;&gt; mp ? Могу только...

Разделить vector<string> на два vector<string>
У меня есть vector&lt;string&gt; line_from_file; line_from_file.resize(N); N-некое число Когда я...

Map<string,vector<pair<string,vector<int> > > > Поиск во всем map
Как пройти циклом по всему map такого вида? map&lt; string, vector&lt; pair&lt; string, vector&lt;int&gt; &gt; &gt; &gt;...

На основе исходного std::vector<std::string> содержащего числа, создать std::vector<int> с этими же числами
подскажите есть вот такая задача. Есть список . Создать второй список, в котором будут все эти же...


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

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

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