【发布时间】:2014-03-19 19:33:27
【问题描述】:
我正在做一个练习,我正在遍历一个单词(“pepper”),我正在计算每个字符重复的次数,我希望输出是:
p: 3
e: 2
r: 1
(按出现顺序排序)
我正在使用地图:
void foo(string word)
{
map<char, int> m;
for(int i = 0; i < word.length(); i++)
m[word[i]]++;
map<char, int>::iterator myIt;
for(myIt = m.begin(); myIt != m.end(); myIt++)
cout << myIt->first << ": " << myIt->second << endl;
}
这里的问题是输出的顺序:
e: 2
p: 3
r: 1
我希望它像我之前提到的那样。有什么办法可以修改地图对它存储的值的排序方式吗?
干杯!!!
【问题讨论】:
-
查看这个可能的副本:create an own comparator for map。比较器确定元素的顺序。您需要
p小于e和e小于r。