int keys[10] = {1, 1, 1, 2, 3, 4, 5, 7, 6, 6};
char s[5];
map< unsigned int, pair<string, int> > tmpMap;
for (int i=0; i<10; i++)
{
if (tmpMap.find(keys[i])==tmpMap.end())
{
sprintf(s, "%i", keys[i]);
tmpMap.insert(make_pair(keys[i], make_pair(s, 1)));
}
else tmpMap[keys[i]].second++;
}
for (map< unsigned int, pair<string, int> >::iterator it=tmpMap.begin(); it!=tmpMap.end(); ++it)
{
cout << (*it).first << " " << (*it).second << endl;
}
として定義される第2のパラメータを持つSTLのmapとC++のコードを持っている。しかし、それはコンパイルに失敗すると、C++マップ構造のコンパイルに失敗し、それ言った、マッチオペレータなし< <。しかし(* it).firstと(* it).secondは単なる文字列とintで、なぜ機能しないのですか?
(* it)。最初は符号なしintであり、(* it).secondはペアとなりますか? –