【发布时间】:2020-01-10 17:17:10
【问题描述】:
class Task
{
public:
string study;
int time;
bool made;
int priority;
}
class Day
{
public:
string date = "undefined";
int aims = 0;
vector <Task> tasks;
}
我有 2 个类,我使用向量来保存两者的数据。 这个项目是一天的每日计划。 现在我需要改进它以存储更多天数,导师希望我使用 MAP。
map<string, Day>Days;
map<string, Day>::iterator it;
Days.insert(pair<string, Day>(s, d));
for (it = Days.begin(); it != Days.end(); ++it)
{
cout << it->first << " " << it->second << '\n';
}
E0349 缺少与这些操作数对应的运算符“
void PrintDay(const Day& d, ChangeF Pd)
{
cout << "Current date:" << d.date << endl << "\n=============================================" << endl << "Number of tasks:" << d.aims;
cout << "\n=============================================" << endl;
for (int i = 0; i < d.aims; i++)
{
PrintTask(d.tasks[i], Pd);
}
}
Day InputDay()
{
setlocale(LC_ALL, "Russian");
Day d;
cout << "\nEnter date dd ENTER mm ENTER yyyy ENTER obe by one" << endl;
int dd, mm, yyyy;
dd = DigitInputCheck(1, 30);
mm = DigitInputCheck(1, 12);
yyyy = DigitInputCheck(0, 4000);
ostringstream WriteDate;
WriteDate << dd << "." << mm << "." << yyyy << endl;
d.date = WriteDate.str();
cout << "Number of tasks:" << endl;
cin >> d.aims;
for (int i = 0; i < d.aims; i++)
{
d.tasks.push_back(InputTask());
}
return d;
}
【问题讨论】:
-
错误信息非常清楚:你没有为
Day类型重载operator<<,所以你不能打印它 -
我会在地图中使用时间作为键
-
“打印”
Day的代码在哪里?这与切换到地图无关。 -
@CruzJean 怎么办?对不起,我是这个领域的菜鸟
-
需要定义函数
std::ostream &operator<<( std::ostream &os, const Day &day );
标签: c++ dictionary