#include <iostream>
#include <iomanip>
#include <map>
#include <string>
#include <utility>
using namespace std;
int main() {
const string data = "foofaaster";
// populate the map
map <char, int> chars;
for (auto c = data.begin(); c != data.end(); ++c)
chars [*c]++;
// Now display the occurances
cout << "Original data: '" << data << "'" << endl;
multimap <int, char, greater <int>> counts;
for (auto c = chars.begin(); c != chars.end(); ++c)
counts.insert (make_pair (c->second, c->first));
cout << "Character counts:" << endl;
for (auto it = counts.begin(); it != counts.end(); ++it)
cout << "\t" << it->first << ": '" << it->second << "'" << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KI2luY2x1ZGUgPG1hcD4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPHV0aWxpdHk+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCWNvbnN0IHN0cmluZyBkYXRhID0gImZvb2ZhYXN0ZXIiOwoJCgkvLyBwb3B1bGF0ZSB0aGUgbWFwCgltYXAgPGNoYXIsIGludD4gY2hhcnM7Cglmb3IgKGF1dG8gYyA9IGRhdGEuYmVnaW4oKTsgYyAhPSBkYXRhLmVuZCgpOyArK2MpCgkJY2hhcnMgWypjXSsrOwoJCgkvLyBOb3cgZGlzcGxheSB0aGUgb2NjdXJhbmNlcwoJY291dCA8PCAiT3JpZ2luYWwgZGF0YTogJyIgPDwgZGF0YSA8PCAiJyIgPDwgZW5kbDsKCW11bHRpbWFwIDxpbnQsIGNoYXIsIGdyZWF0ZXIgPGludD4+IGNvdW50czsKCWZvciAoYXV0byBjID0gY2hhcnMuYmVnaW4oKTsgYyAhPSBjaGFycy5lbmQoKTsgKytjKQoJCWNvdW50cy5pbnNlcnQgKG1ha2VfcGFpciAoYy0+c2Vjb25kLCBjLT5maXJzdCkpOwoJY291dCA8PCAiQ2hhcmFjdGVyIGNvdW50czoiIDw8IGVuZGw7Cglmb3IgKGF1dG8gaXQgPSBjb3VudHMuYmVnaW4oKTsgaXQgIT0gY291bnRzLmVuZCgpOyArK2l0KQoJCWNvdXQgPDwgIlx0IiA8PCBpdC0+Zmlyc3QgPDwgIjogJyIgPDwgaXQtPnNlY29uZCA8PCAiJyIgPDwgZW5kbDsKCgkKCXJldHVybiAwOwp9