#include <iostream>
#include <string>
#include <map>
#include <unordered_map>
#include <atomic>
#include <algorithm>
#include <iterator>
int main()
{
std::unordered_map<std::string, std::atomic<unsigned int>> m;
for (auto p : std::initializer_list<std::pair<std::string, unsigned int>>{{ "a", 32},{ "b" , 22 },{ "c" , 32 },{ "d" , 22 },{ "e" , 55 } })
m.emplace(p);
std::multimap<unsigned int, std::string> printmap;
std::transform(m.begin(), m.end(), std::inserter(printmap, printmap.end()),
[](auto const &p) { return std::make_pair(p.second.load(), p.first); });
for (auto const &p : printmap)
std::cout << p.first << " - " << p.second << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8bWFwPgojaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KI2luY2x1ZGUgPGF0b21pYz4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGl0ZXJhdG9yPgoKaW50IG1haW4oKQp7CglzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcsIHN0ZDo6YXRvbWljPHVuc2lnbmVkIGludD4+IG07Cglmb3IgKGF1dG8gcCA6IHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxzdGQ6OnBhaXI8c3RkOjpzdHJpbmcsIHVuc2lnbmVkIGludD4+e3sgImEiLCAzMn0seyAiYiIgLCAyMiB9LHsgImMiICwgMzIgfSx7ICJkIiAsIDIyIH0seyAiZSIgLCA1NSB9IH0pCgkJbS5lbXBsYWNlKHApOwoKCXN0ZDo6bXVsdGltYXA8dW5zaWduZWQgaW50LCBzdGQ6OnN0cmluZz4gcHJpbnRtYXA7CgoJc3RkOjp0cmFuc2Zvcm0obS5iZWdpbigpLCBtLmVuZCgpLCBzdGQ6Omluc2VydGVyKHByaW50bWFwLCBwcmludG1hcC5lbmQoKSksCgkJW10oYXV0byBjb25zdCAmcCkgeyByZXR1cm4gc3RkOjptYWtlX3BhaXIocC5zZWNvbmQubG9hZCgpLCBwLmZpcnN0KTsgfSk7CgoJZm9yIChhdXRvIGNvbnN0ICZwIDogcHJpbnRtYXApCgkJc3RkOjpjb3V0IDw8IHAuZmlyc3QgPDwgIiAtICIgPDwgcC5zZWNvbmQgPDwgc3RkOjplbmRsOwoKCXJldHVybiAwOwp9