数日間練習していませんでしたが、この質問を見たときの最初の反応は辞書マップを使用することだったので、最初に 0 ~ 9 の一連のマップを作成しました。
私はすぐにコードを書き終えましたが、データは変更されていません。その後、マップのペアが <char, int> であり、トラバーサルの出力が <int, int> であることがわかったので、実際に新しいキーを作成しました-値のペアなので、出力は 0 です
1. マップを使用する際に、どのキー値を持っているかを宣言する必要はなく、キーを直接割り当てるだけで、対応するキーがない場合は、新しいキーと値のペアが作成されます。好き:
map[0]++
マップ【0】が既に存在する場合、その値+1
存在しない場合は、マップ [0] を作成し、値 1 を割り当てます。
2.int から char
int 1 を char 1 に変更したい場合は、単に c = '0'+1
#include <iostream>
#include <string>
#include <map>
#include <algorithm>
using namespace std;
int main(){
map<char, int> mapNumber;
string s;
int i;
char c;
cin>>s;
for(i=0;i<s.size();i++){
mapNumber[s[i]]++;
}
for(i=0;i<10;i++){
c = (char)('0' + i);
if(mapNumber[c]!=0){
cout<<i<<":"<<mapNumber[ c ]<<endl;
}
}
return 0;
}