用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;
}