\排序
bool cmp(const pair<string,int> p1,const pair<string,int> p2)
{
if(p1.second==p2.second) return p1.first<p2.first;
else
{
//p1.second>p2.second;
return p1.second>p2.second;
}
}

class Solution {
public:
/**
* return topK string
* @param strings string字符串vector strings
* @param k int整型 the k
* @return string字符串vector<vector<>>
*/

vector<vector<string> > topKstrings(vector<string>& strings, int k) {
    // write code here
    int len=strings.size();
    map<string,int> mp;

//统计字符数量
for(int i=0;i<len;i++)
{
mp[strings[i]]++;
}
vector<pair<string,int>> temp;
//将map转为vector<pair> 方便排序
for(map<string,int>::iterator it=mp.begin();it!=mp.end();it++)
{
temp.push_back({it->first,it->second});
}
sort(temp.begin(),temp.end(),cmp);
vector<vector<string>> ans;
//前temp的前k个数值就是题意答案
for(int i=0;i<k;i++)
{
vector<string> tp;
tp.push_back(temp[i].first);
tp.push_back(to_string(temp[i].second));
ans.push_back(tp);
}
return ans;
}
};</string></string></pair>