1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | #include <vector> #include <algorithm> #include <map> #include <string> #include <iostream> #include <iterator> template <class T, class U> class sorting_map { const std::map<T, U>& s_map; public: sorting_map(const std::map<T, U>& s_ ) : s_map(s_) {} bool operator()(T x, T y) const { return s_map.at(x) < s_map.at(y); } }; using namespace std; int main() { map<string, int> tmap = {{"a", 5}, {"b", 1}, {"c", 3}, {"e", 6}, {"f", 10}, {"g", 8}}; vector<string> v = {"a", "b", "c", "f", "g"}; cout << "Before sorting: "; copy(v.begin(), v.end(), ostream_iterator<string>(cout, " ")); cout << '\n'; sort(v.begin(), v.end(), sorting_map<string, int>(tmap)); cout << "After sorting: "; copy(v.begin(), v.end(), ostream_iterator<string>(cout, " ")); cout << '\n'; map<string, int, sorting_map<string, int> > mymap3(tmap); mymap3["a"] = 100; mymap3["b"] = 200; mymap3["c"] = 300; for(auto i = mymap3.begin(); i!=mymap3.end(); ++i) std::cout << "mymap3[" << i->first << "] = " << i->second << '\n'; } |
I2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPG1hcD4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aXRlcmF0b3I+Cgp0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgVT4KY2xhc3Mgc29ydGluZ19tYXAgCnsgCiAgICBjb25zdCBzdGQ6Om1hcDxULCBVPiYgc19tYXA7CiBwdWJsaWM6CiAgICBzb3J0aW5nX21hcChjb25zdCBzdGQ6Om1hcDxULCBVPiYgc18gKSA6IHNfbWFwKHNfKSB7fQogICAgYm9vbCBvcGVyYXRvcigpKFQgeCwgVCB5KSBjb25zdCB7IHJldHVybiBzX21hcC5hdCh4KSA8IHNfbWFwLmF0KHkpOyB9Cn07Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwppbnQgbWFpbigpCnsKICAgIG1hcDxzdHJpbmcsIGludD4gdG1hcCA9IHt7ImEiLCA1fSwgeyJiIiwgMX0sIHsiYyIsIDN9LCB7ImUiLCA2fSwgeyJmIiwgMTB9LCB7ImciLCA4fX07CgogICAgdmVjdG9yPHN0cmluZz4gdiA9IHsiYSIsICJiIiwgImMiLCAiZiIsICJnIn07IAoKICAgIGNvdXQgPDwgIkJlZm9yZSBzb3J0aW5nOiAiOwogICAgY29weSh2LmJlZ2luKCksIHYuZW5kKCksIG9zdHJlYW1faXRlcmF0b3I8c3RyaW5nPihjb3V0LCAiICIpKTsKICAgIGNvdXQgPDwgJ1xuJzsKCiAgICBzb3J0KHYuYmVnaW4oKSwgdi5lbmQoKSwgc29ydGluZ19tYXA8c3RyaW5nLCBpbnQ+KHRtYXApKTsKCiAgICBjb3V0IDw8ICJBZnRlciBzb3J0aW5nOiAiOwogICAgY29weSh2LmJlZ2luKCksIHYuZW5kKCksIG9zdHJlYW1faXRlcmF0b3I8c3RyaW5nPihjb3V0LCAiICIpKTsKICAgIGNvdXQgPDwgJ1xuJzsKCiAgICBtYXA8c3RyaW5nLCBpbnQsIHNvcnRpbmdfbWFwPHN0cmluZywgaW50PiA+IG15bWFwMyh0bWFwKTsgCiAgICBteW1hcDNbImEiXSA9IDEwMDsKICAgIG15bWFwM1siYiJdID0gMjAwOwogICAgbXltYXAzWyJjIl0gPSAzMDA7CiAgICBmb3IoYXV0byBpID0gbXltYXAzLmJlZ2luKCk7IGkhPW15bWFwMy5lbmQoKTsgKytpKQogICAgICAgIHN0ZDo6Y291dCA8PCAibXltYXAzWyIgPDwgaS0+Zmlyc3QgPDwgIl0gPSAiIDw8IGktPnNlY29uZCA8PCAnXG4nOwp9Cg==
-
upload with new input
-
result: Success time: 0s memory: 2992 kB returned value: 0
Before sorting: a b c f g After sorting: b c a g f mymap3[b] = 200 mymap3[c] = 300 mymap3[a] = 100


