Форум программистов, компьютерный форум 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++. подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
28.07.2012, 18:32     Задача по теме карта (map)
Цитата Сообщение от DaskOFF Посмотреть сообщение
это сейчас
Усовершенствуйте карту из предыдущей задачи так, чтобы вектор хранил пары, содержащие имя ребенка и день его рождения. Измените проверку так, чтобы она позволяла проверить модернизированную карту
- Лови
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#include <map>
#include <string>
#include <vector>
#include <utility>
#include <fstream>
#include <sstream>
#include <iostream>
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"RUS");//Руссификация 
    ifstream ifs;//Поток для чтения файла
    ofstream ofs;//Поток для записи файла
    string fam;  //Строка с фамилией
    string name; //Строка с именем
    string date; //Строка с датой
    string line; //Строка с текущей строкой из файла
 
    map<string, vector<pair<string, string>>> mymap;//Наша карта
    map<string, vector<pair<string, string>>>::iterator itMap;//Итератор для карты
    vector <pair<string,string>> vec;//Вектор с именами и датами рождения детей
    vector <pair<string,string>>::iterator itVec; //Итератор для вектора
 
    int iChoise= 0;//Будет отвечать за выбор пользователя
    bool bMenu = true;//флаг для меню вывода
    int nCount = 0;//Будет содержать число результатов удовлетворяющих запросу на поиск
    stringstream ifs_ss;
    ifs.open("input.txt");
    if(!ifs.is_open())
        cout<<"Error open input.txt\n";
    else
    {
        //Цикл чтения
        cout<<"input.txt :\n";
        while(getline(ifs,line))
        {
            ifs_ss.sync();//Обязательно чистим буфер
            ifs_ss.str(line);//Инициализируем стрнгпоток введенной строкой
            ifs_ss>>fam;cout<<fam<<" ";
            while(ifs_ss>>name>>date)
            {
                cout<<name<<" "<<date<<" ";
                vec.push_back(make_pair(name,date));
            }
            mymap.insert(make_pair(fam,vec));
            ifs_ss.clear();
            vec.clear();
            cout<<endl;
        }
        ifs.close();//Закрыли поток чтения
        ofs.open("output.txt");
        if(!ofs.is_open())
            cout<<"Error open output.txt\n";
        else
        {
            cout<<"output.txt :\n";
            while(bMenu)
            {
                cout<<"\t***MENU***\n";
                cout<<"1 - Enter Child name\n";
                cout<<"2 - Enter Child date\n";
                cout<<"0 - Exit\n";
                cout<<"Choise : ";cin>>iChoise;
                cin.sync();//чистим буффер ввода
                nCount = 0;//Обнуляем счётчик поиска
                switch(iChoise)
                {
                    case 1:
                        cout<<"Name : ";
                        getline(cin,name);
                        break;
                    case 2:
                        cout<<"Date : ";
                        getline(cin,date);
                        break;
                    case 0:
                        bMenu = false;
                        break;
                    default:
                        cout<<"Not spported key pressed\n";
                        break;
                }
                for (itMap = mymap.begin(); itMap != mymap.end(); itMap++)
                {
                    vec = (*itMap).second;
                    for(itVec = vec.begin();itVec != vec.end(); itVec++)
                    {
                            
                        if
                        (
                            iChoise == 1 ? (*itVec).first == name : 
                            iChoise == 2 ? (*itVec).second== date :
                            false
                        )
                        {
                            ofs <<(*itVec).first <<" "<<(*itVec).second<<" ";
                            cout<<(*itVec).first <<" "<<(*itVec).second<<" ";
                            nCount++;//Увеличиваем значение счётчика
                        }
                    }
                    vec.clear();
                }
                if((iChoise == 1 || iChoise == 2) && nCount == 0)
                    cout<<"Not found";
                cout<<endl;
            }
            ofs.close();
        }
    }
    system("pause");
    return 0;
}
В аттаче проект, экзешник и вход/выход файлы
Миниатюры
Задача по теме карта (map)  
Вложения
Тип файла: rar stdMap3.exe.rar (74.4 Кб, 3 просмотров)
Тип файла: rar stdMap3_VS9.0_proj.rar (4.9 Кб, 2 просмотров)
Тип файла: txt input.txt (105 байт, 3 просмотров)
Тип файла: txt output.txt (33 байт, 3 просмотров)
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru