怎样输入一串名字计数问题

输入一串名字
zhangsan
lisi
zhangsan
zhangsan
lisi
输出名字出现最多次数那个名字

#include <iostream>
#include <string>
#include <map>

using namespace std;

int main()
{
    map<string, int> counts;
    string name;
    while (cin >> name)
        counts[name]++;
    int max = 0;
    for (auto &&[n, c] : counts)
    {
        if (c > max)
        {
            max = c;
            name = n;
        }
    }
    cout << name << endl;
    return 0;
}
$ g++ -Wall -std=c++17 main.cpp
$ cat test.txt
zhangsan
lisi
zhangsan
zhangsan
lisi
$ cat test.txt | ./a.out
zhangsan