Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
2 / 2 / 1
Регистрация: 02.11.2017
Сообщений: 60

Словарь множеств некорректно работает

17.12.2018, 21:26. Показов 392. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Делаю простенькую БД, с возможность добавлять Add дату и событие. Ну и Print всего. Но не пойму почему не все данные вносятся в словарь. И множество почему-то не отсортировано. В общем, что не так сделал?))

Add 1-1-1 B
Add 1-1-1 D
Add 1-1-1 C
Add 1-1-1 A
Print
0001-01-01_D_
0001-01-01_B_

C++ (Qt)
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
#include <iostream>
#include <iomanip>
#include <string>
#include <vector>
#include <map>
#include <set>
#include <exception>
#include <algorithm>
using namespace std;
 
struct Date {
          int year_;
          int month_;
          int day_;
};
ostream & operator << (ostream & os, const Date & a) {
        os <<setw(4)<< setfill('0')<< a.year_<< "-"
    <<setw(2)<<a.month_ << "-"<< setw(2) << a.day_;
        return os;
}
bool operator < (const Date & a, const Date & b) {
        if (a.year_<b.year_) return true;
        else if (a.year_>b.year_) return false;
 
        if (a.month_<b.month_) return true;
        else if (a.month_>b.month_) return false;
 
        if (a.day_<b.day_) return true;
        else if (a.day_>b.day_) return false;
 
}
map <Date, set <string> > Data_Base;
 
void Add () {
        string date, event;
        int year, month, day;
        char first, second;
        bool flag=0;
 
        cin >> year;
        cin >> first;
        if (first != '-' ) flag=true;
        cin >> month;
        if (month<1 || month>12) flag=true;
        cin >> second;
        if (second != '-' ) flag=true;
        cin >> day;
        if (day<1 || day>31 ) flag=true;
 
        date= to_string(year) + first + to_string(month) + second + to_string(day);
        if (flag) throw runtime_error("Wrong date format: " +date);
 
        cin>> event;
 
        Date total =  {year, month, day };
        Data_Base[total].insert(event);
 
}
void Print() {
 
        for( const auto& x:Data_Base) {
          for(const auto& a: x.second ) {
            cout << x.first << "_" << a << "_";
          }
          cout << endl;
        }
}
int main() {
        string command;
        while (1)  {
          cin>>command;
          if (command=="Add" ) {
            try {
              Add();
            }
            catch (exception & ex) {
              cout << ex.what()<< endl;
            }
          }
          else if (command=="Print" ) {
            Print();
          }
        }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.12.2018, 21:26
Ответы с готовыми решениями:

Некорректно работает
Здравствуйте помогите пож-та с задачкой: Сформировать вещественный массив X1(N), N≤20, элементами которого являются случайные...

Некорректно работает программа
При создании c1 все еще правильно. При выполнении операторов уже нет. Почему? #include &lt;iostream&gt; #define _USE_MATH_DEFINES ...

Некорректно работает меню с++
Программа для работы со строками. Задаю строки сначала. Потом из списка меню я хочу выбрать действие над строкой. Но при выборе любого...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.12.2018, 21:26
Помогаю со студенческими работами здесь

libncurses некорректно работает
#include &lt;iostream&gt; #include &lt;cmath&gt; #include &lt;ncurses.h&gt; using namespace std; class polar { private: float r; ...

некорректно работает программа
Программа компилируется но после ввода данных пропадает окно! #include&lt;iostream.h&gt; #include&lt;string.h&gt; #include&lt;math.h&gt; ...

Некорректно работает find
Дано:

Функция работает некорректно
#include &lt;iostream&gt; using namespace std; short fill(double*, short); const short size = 5; int main() { double array;...

Функция работает некорректно
написал функцию,возвращающий нажатую клавишу: char func2(){ if(_kbhit()){ char c; c=_getch(); return c; } return 0; ...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод Сайт называется reddit: The Thinkpad X220 Tablet is the best budget school laptop period. Это. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru