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

Задача по теме карта (map) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Русская справка для VS2010 http://www.cyberforum.ru/cpp-beginners/thread629920.html
Справка на английском что делать ? VS2010 Что делать, мне русская нужна. :(
C++ Ввод целых чисел Пользователь вводит целое число, но если введёт символ - программа вылетает. Что можно сделать, чтобы избавиться от данной проблемы? #include "stdafx.h" #include <iostream> using namespace std; ... http://www.cyberforum.ru/cpp-beginners/thread629911.html
Функция main с аргументами C++
Приветствую, подскажите где именно указывать параметры аргументов(int argc, char **argv), если использовать следующий тип записи int main(int argc, char **argv) { return 0; }
Совместное использование указателей и ссылок C++
int *ptr; int &ref = *ptr; ref = 1; Вот и весь вопрос. Ничего плохого в этом нет?
C++ Deep copy and Shadow copy http://www.cyberforum.ru/cpp-beginners/thread629882.html
Этот проект компилируется нормально. И функциональность всех элементов на первый взгляд нормальная. ПРОБЛЕМА: Надо сделать нормально = оператор и копи конструктор. Вообщем где или кто и как то я...
C++ Ошибка при выполнении Привет всем. Скажите пожалуйста, что мне делать? При выполнении программы выдает ошибку "Инструкция по адресу "0x004013bd" обратилась к памяти по адресу "0х00000002". Память не может быть "written".... подробнее

Показать сообщение отдельно
DaskOFF
112 / 112 / 9
Регистрация: 02.05.2012
Сообщений: 524
Записей в блоге: 1

Задача по теме карта (map) - C++

28.07.2012, 13:44. Просмотров 1264. Ответов 18
Метки (Все метки)

Условие:
Дан файл содержащий в каждой строке фамилию отца и имена детей.
Занесите все данные в карту где фамилия является ключом
Выведите имена всех детей в отдельный файл через пробел.
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include <map>
#include <sstream>
 
int main()
{
    // карта key - фамилия , value - имена детей
    std::map<std::string, std::vector <std::string> > child;
    // строка для фамилии при считывании из файла
    std::string fam;
    // вектор для имен детей
    std::vector <std::string> name;
 
    // связываем переменную с файлом
    std::ifstream map_zapolnenie;
    map_zapolnenie.open("input.txt");
    // переменная для считывания строки из файла
    //и последующего разбора по словам
    std::string line;
 
    // цикл разбора каждой строки входного файла
    // 1 слово записывается в fam - фамилия
    // все последующие в вектор имен
    while (std::getline(map_zapolnenie, line)) {
        std::istringstream stream(line);
        std::string word;
        stream >> fam;
        while (stream >> word) {
            name.push_back(word);
        }
        // результат записывается в карту
        child.insert(std::make_pair(fam, name));
    }
 
    // связывание переменой и файла вывода
    std::ofstream map_vivod;
    map_vivod.open("outout.txt");
 
    // итератор на начало карты
    std::map< std::string, std::vector<std::string> >::iterator iter=child.begin();
    while (iter != child.end()) {
        // вывод в файл только имен через пробел
        for (std::vector<std::string>::iterator vec=iter->second.begin(); vec != iter->second.end(); vec++) {
            map_vivod << *vec << " ";
        }
        ++iter;
    }
    //закрытие всех файлов
    map_zapolnenie.close();
    map_vivod.close();
 
    return 0;
}
цикл с 27 по 36 строку он почему то перепрыгивает

Входной файл содержит
Иванов Роман Михаил
Петров Алена Ира
Сидоров Галя
Рыбин Олег Костя Игорь
Выходной файл получается таким
Роман Михаил Роман Михаил Алена Ира Роман Михаил Алена Ира Галя Олег Костя Игорь Роман Михаил Алена Ира Галя
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru