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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Русская справка для VS2010 http://www.cyberforum.ru/cpp-beginners/thread629920.html
Справка на английском что делать ? VS2010 Что делать, мне русская нужна. :(
C++ Ввод целых чисел Пользователь вводит целое число, но если введёт символ - программа вылетает. Что можно сделать, чтобы избавиться от данной проблемы? #include "stdafx.h" #include <iostream> using namespace std; int main() { setlocale(LC_ALL, "Rus"); int number ; 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
Этот проект компилируется нормально. И функциональность всех элементов на первый взгляд нормальная. ПРОБЛЕМА: Надо сделать нормально = оператор и копи конструктор. Вообщем где или кто и как то я услышал (не важно ) что есть такое понятие как shadow copy and deep copy. Типа вроде как если имплиминтировать как я сделал, то // from Array. cpp m_size = source.m_size; // shallow copy...
C++ Ошибка при выполнении Привет всем. Скажите пожалуйста, что мне делать? При выполнении программы выдает ошибку "Инструкция по адресу "0x004013bd" обратилась к памяти по адресу "0х00000002". Память не может быть "written". Использую для создания проги Dev-C++. подробнее

Показать сообщение отдельно
DaskOFF
 Аватар для DaskOFF
112 / 112 / 9
Регистрация: 02.05.2012
Сообщений: 521
Записей в блоге: 1
28.07.2012, 13:44     Задача по теме карта (map)
Условие:
Дан файл содержащий в каждой строке фамилию отца и имена детей.
Занесите все данные в карту где фамилия является ключом
Выведите имена всех детей в отдельный файл через пробел.
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 строку он почему то перепрыгивает

Входной файл содержит
Иванов Роман Михаил
Петров Алена Ира
Сидоров Галя
Рыбин Олег Костя Игорь
Выходной файл получается таким
Роман Михаил Роман Михаил Алена Ира Роман Михаил Алена Ира Галя Олег Костя Игорь Роман Михаил Алена Ира Галя
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru