Форум программистов, компьютерный форум 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, 16:00  [ТС]     Задача по теме карта (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
57
58
59
60
61
62
63
64
65
66
67
68
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include <map>
#include <sstream>
#include <utility>
 
int main()
{
    // карта key - фамилия , value - имена детей
    std::map<std::string, std::vector<std::pair<std::string, std::string> > > child;
    // строка для фамилии при считывании из файла
    std::string fam;
    // вектор для имен детей
    std::pair<std::string, std::string> name_bithday;
    std::vector< std::pair < std::string, std::string > > name;
 
    // связываем переменную с файлом
    std::ifstream map_zapolnenie;
    map_zapolnenie.open("input.txt");
    // переменная для считывания строки из файла
    //и последующего разбора по словам
    std::string lines;
 
    // цикл разбора каждой строки входного файла
    // 1 слово записывается в fam - фамилия
    // все последующие в вектор имен
    while (std::getline(map_zapolnenie, lines)) {
        std::istringstream stream(lines);
        std::string word, bithday;
        stream >> fam;
        name.clear();
        while (stream >> word >> bithday) {
            name_bithday.first = word;
            name_bithday.second = bithday;
            name.push_back(name_bithday);
            
        }
        // результат записывается в карту
        child.insert(std::make_pair(fam, name));
    }
 
    // связывание переменой и файла вывода
    std::ofstream map_vivod;
    map_vivod.open("outout.txt");
 
    //Выводить в файл имена только тех, фамилию отца которых ввели
    //выход из цикла 1
    do {
    std::cout << "Fam na vivod: ";
    std::cin >> fam;
        if ((fam !="1") && (child.find(fam) != child.end())) {
            name.clear();
            name = child[fam];
            for(std::vector<std::pair< std::string, std::string> >::iterator it=name.begin(); it !=name.end(); it++) {
                map_vivod << it->first /* имя */  << " - " << it->second/* дата рождения*/ << " ";
            }
            map_vivod << std::endl;
        }
    } while (fam != "1");
 
    //закрытие всех файлов
    map_zapolnenie.close();
    map_vivod.close();
 
    return 0;   
}
Вход
Ivanov Roman 31.12.1991 Kolya 15.02.2001
Sidorov Alena 16.08.1989
Ribin Anna 25.06.1993 Petr 14.11.1998
Выход
Alena - 16.08.1989
Roman - 31.12.1991 Kolya - 15.02.2001
 
Текущее время: 16:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru