#include using namespace std; //map按值排序 bool cmp_val(const pair &left, const pair &right) { if (left.second == right.second) return left.first > right.first; //这个需要要讲解时,一点点渗透,要不学生不知道是怎么回事 return left.second < right.second; } int main() { string s; getline(cin, s); map _map; for (int i = 0; i < s.size(); ++i) { _map[s[i]]++; } //按value对map进行排序 vector> vec(_map.begin(), _map.end()); //根据map进行创建动态数组 sort(vec.begin(), vec.end(), cmp_val);// 排序 //输出 cout << char(vec[vec.size() - 1].first) << " " << vec[vec.size() - 1].second; return 0; }