#include <map>
#include <set>
#include <string>
#include <iostream>
#include <iomanip>
int main() {
std::map<std::string, int> m; // Your original map.
m["realistically"] = 1;
m["really"] = 8;
m["reason"] = 4;
m["reasonable"] = 3;
m["reasonably"] = 1;
m["reassemble"] = 1;
m["reassembled"] = 1;
m["recognize"] = 2;
m["record"] = 92;
m["records"] = 48;
m["recs"] = 7;
std::set<std::pair<int, std::string>> s; // The new (temporary) container.
for (auto const &kv : m)
s.emplace(kv.second, kv.first); // Flip the pairs.
for (auto const &vk : s)
std::cout << std::setw(3) << vk.first << std::setw(15) << vk.second << std::endl;
return 0;
}
I2luY2x1ZGUgPG1hcD4KI2luY2x1ZGUgPHNldD4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KCmludCBtYWluKCkgewogICAgc3RkOjptYXA8c3RkOjpzdHJpbmcsIGludD4gbTsgIC8vIFlvdXIgb3JpZ2luYWwgbWFwLgogICAgbVsicmVhbGlzdGljYWxseSJdID0gMTsKICAgIG1bInJlYWxseSJdICAgICAgICA9IDg7CiAgICBtWyJyZWFzb24iXSAgICAgICAgPSA0OwogICAgbVsicmVhc29uYWJsZSJdICAgID0gMzsKICAgIG1bInJlYXNvbmFibHkiXSAgICA9IDE7CiAgICBtWyJyZWFzc2VtYmxlIl0gICAgPSAxOwogICAgbVsicmVhc3NlbWJsZWQiXSAgID0gMTsKICAgIG1bInJlY29nbml6ZSJdICAgICA9IDI7CiAgICBtWyJyZWNvcmQiXSAgICAgICAgPSA5MjsKICAgIG1bInJlY29yZHMiXSAgICAgICA9IDQ4OwogICAgbVsicmVjcyJdICAgICAgICAgID0gNzsKCiAgICBzdGQ6OnNldDxzdGQ6OnBhaXI8aW50LCBzdGQ6OnN0cmluZz4+IHM7ICAvLyBUaGUgbmV3ICh0ZW1wb3JhcnkpIGNvbnRhaW5lci4KCiAgICBmb3IgKGF1dG8gY29uc3QgJmt2IDogbSkKICAgICAgICBzLmVtcGxhY2Uoa3Yuc2Vjb25kLCBrdi5maXJzdCk7ICAvLyBGbGlwIHRoZSBwYWlycy4KCiAgICBmb3IgKGF1dG8gY29uc3QgJnZrIDogcykKICAgICAgICBzdGQ6OmNvdXQgPDwgc3RkOjpzZXR3KDMpIDw8IHZrLmZpcnN0IDw8IHN0ZDo6c2V0dygxNSkgPDwgdmsuc2Vjb25kIDw8IHN0ZDo6ZW5kbDsKCglyZXR1cm4gMDsKfQ==