C++ 将对象放入地图后打印该对象 类任务 { 公众: 弦研究; 整数时间; 布尔制造; int优先级; } 上课日 { 公众: 字符串日期=“未定义”; int=0; 向量任务; }
我有两个类,我使用vector来保存来自这两个类的数据。 这个项目是一个每天的计划。 现在我需要改进它以存储更多的天数,导师希望我使用MAPC++ 将对象放入地图后打印该对象 类任务 { 公众: 弦研究; 整数时间; 布尔制造; int优先级; } 上课日 { 公众: 字符串日期=“未定义”; int=0; 向量任务; },c++,dictionary,C++,Dictionary,我有两个类,我使用vector来保存来自这两个类的数据。 这个项目是一个每天的计划。 现在我需要改进它以存储更多的天数,导师希望我使用MAP class Task { public: string study; int time; bool made; int priority; } class Day { public: string date = "undefined"; int aims = 0;
class Task
{
public:
string study;
int time;
bool made;
int priority;
}
class Day
{
public:
string date = "undefined";
int aims = 0;
vector <Task> tasks;
}
mapDays;
对它进行迭代器;
天。插入(一对(s,d));
for(it=Days.begin();it!=Days.end();+it)
{
cout first如评论中所述,您需要重载运算符错误消息非常清楚:您没有重载运算符。否则,您将使用时间作为映射中的键,其中是要“打印”的代码aDay
?这与切换到地图无关。@CruzJean怎么办?对不起,我在这个领域没有任何问题。您需要定义函数std::ostream&operatorostream&operatorostream&operator@aigoo038你为什么在评论中乱发代码?它不可读…我是这样写的,但还是不明白我在说什么 doin@aigoo038如果你想要求澄清,那就直接问。如果你有后续问题,那么你可以提出一个新问题
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';
}
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;
}
std::ostream &operator<<( std::ostream &os, const Day &day ) {
os << "Current date:" << d.date << '\n'
<< "\n=============================================\n"
<< "Number of tasks:" << d.aims
<< "\n=============================================\n";
for (int i = 0; i < d.aims; i++)
{
os << d.tasks[i];
}
}