算法设计分析,求解门禁系统问题

[问题描述] 涛涛最近要 负责图书馆的管理工作,需要记录下每天读者的到访情况。每位读者有一个编号,每条记录用读者的编号来表示。给出读者的来访记录,得到每一条记录中的读者是第几次出现。

输人描述:输人的第1行包含一个整数n,表示涛涛的记录条数;第2行包含n个整数,依次表示涛涛的记录中每位读者的编号。

输出描述:输出一行,包含n个整数,由空格分隔,依次表示每条记录中的读者编号是第几次出现。

#include <iostream>
using namespace std;
#include <map>
#include <vector>
int main()
{
    int n;
    map<int, int> myMap;
    vector<int> data;
    while (cin >> n)
    {
        for (int i = 0; i < n; i++)
        {
            int num;
            cin >> num;
            myMap[num]++;
            data.push_back(myMap[num]);
        }
        for (auto tmp : data)
        {
            cout << tmp << " ";
        }
    }
    

    system("pause");
    return 0;
}

如果是DEVC++需要加编译器选项。
工具-编译选项-加入:-std=c++11
img