2016-04-05 5 views
-1

私は文字列(cuvant)を持っています。各文字にはfrecベクトルに対応する番号が付いています。私がベクトルを並べ替えると、文字列の文字を並べ替えることができます。私はこのために地図を使うことができると思ったが、私はそれを初期化する方法を知らない。以下は私が試したものです:stdライブラリのマップを使用

map <char,int> sort; 
     for(unsigned int=0;i<cuvant.size();i++){ 
      sort.insert(make_pair(cuvant[i],frec[i])); 

     } 
+1

そして、何期待どおりに動作しないのですか? –

+0

だから問題は何ですか? – ayushgp

+0

はA→Zのようにソートされていますか? –

答えて

1

実際には、唯一欠けている部分がtonisuterによって指摘されました。あなたのコードスニペットから

using namespace std; 
int main() 
{ 
    string cuvant = "AtesT"; 
    int frec[5] = {3,0,4,1,2}; 

    map <int, char> sort; 
    for(unsigned int i =0;i<cuvant.size();i++){ 
     sort.insert(make_pair(frec[i],cuvant[i])); 
    } 

    for(auto x: sort) 
    cout << x.second << endl; 

return 0; 
} 

そしてそれは、出力: トン の T 電子