C++ 将对象放入地图后打印该对象 类任务 { 公众: 弦研究; 整数时间; 布尔制造; int优先级; } 上课日 { 公众: 字符串日期=“未定义”; int=0; 向量任务; }

C++ 将对象放入地图后打印该对象 类任务 { 公众: 弦研究; 整数时间; 布尔制造; 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;

我有两个类,我使用vector来保存来自这两个类的数据。 这个项目是一个每天的计划。 现在我需要改进它以存储更多的天数,导师希望我使用MAP

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如评论中所述,您需要重载
运算符错误消息非常清楚:您没有重载
运算符。否则,您将使用时间作为映射中的键,其中是要“打印”的代码a
Day
?这与切换到地图无关。@CruzJean怎么办?对不起,我在这个领域没有任何问题。您需要定义函数
std::ostream&operator
ostream&operator
ostream&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];
    }
}