用typedef定义一个pair的类型,pair里面第一个是char,第二个是字符出现的次数。 然后定义一个vector,类型即为之前定义的pair<char,int>。
#include<iostream> #include<vector> #include<algorithm> using namespace std; typedef pair <char,int> x; bool cmp(x a,x b){ if(a.second!=b.second) return a.second>b.second; else return a.first<b.first; } int CHAR[256]; vector<x>C; int main(){ string s; while(getline(cin,s)){ for(int i=0;i<256;i++){ x tmp; tmp.second=0; tmp.first=i; C.push_back(tmp); //初始化vector中的每个量 } for(int i=0;i<s.size();i++){ C[s[i]].second +=1; //出现一次即进行一次累加操作 } sort(C.begin(),C.end(),cmp); for(int i=0;i<(int)C.size();i++) if(C[i].second>0) cout<<C[i].first; cout<<endl; C.clear(); } return 0; }