Я пытался сделать календарь с обычными делами (например, оплата) и получить out_of_range
при добавлении дела до 31 января. Поэтому я думаю, что я неправильно выделил память в моем 2d-векторе. Кроме того, я попытался отладить, но я не мог проверить размер вектора (месяц) от вектора векторов. Поэтому я также попробовал sizeof
, но он показывает 0 в этом случае: cout << sizeof(business) / sizeof(business[0][0]);
и 1 в этом: cout << sizeof(business) / sizeof(business[0]);
. Ввод: 12 Add 5 Salary
Add 31 Walk
#include "pch.h"
#include <iostream>
#include <string>
#include <vector>
using namespace std;
void Add(vector<vector<string>>& business, const int current_month)
{
int current_day;
string s;
cout << "Enter a day, please" << endl;
cin >> current_day;
cout << "Enter your business, please" << endl;
cin >> s;
current_day -= 1;
business[current_month][current_day] = s;
}
int main()
{
int current_month = 0;
vector<int> count_of_days_in_months = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
vector<vector<string> > business(12, vector<string>(( count_of_days_in_months[current_month] ) - 1));
cout << sizeof(business) / sizeof(business[0][0]);
int Q;
cin >> Q;
string command;
for (int j = 0; j < Q; j++)
{
cout << "Enter a command, please" << endl;
cin >> command;
if (command == "Add")
Add(business, current_month);
else if (command == "Dump")
Dump(business, current_month);
else if (command == "Next")
Next(business, count_of_days_in_months, current_month);
}
}