#include<iostream>
#include <unordered_map>
using namespace std;
int main(int argc, char** argv) {
unordered_map<int, int> map1{
{1, -10},
{10, -1},
{2, 5},
};
decltype(map1) map2;
for(auto &elem: map1) {
if(elem.second < 0) {
map2.emplace(elem.first, elem.second);
map1.erase(elem.first);
}
}
for(auto &elem: map2) {
cout << "negative value pair = " << elem.first << ", " << elem.second << endl;
}
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlIDx1bm9yZGVyZWRfbWFwPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7Cgl1bm9yZGVyZWRfbWFwPGludCwgaW50PiBtYXAxeyAKCQl7MSwgLTEwfSwgCgkJezEwLCAtMX0sIAoJCXsyLCA1fSwgCgl9OwoJZGVjbHR5cGUobWFwMSkgbWFwMjsKCQoJZm9yKGF1dG8gJmVsZW06IG1hcDEpIHsKCQlpZihlbGVtLnNlY29uZCA8IDApIHsKCQkJbWFwMi5lbXBsYWNlKGVsZW0uZmlyc3QsIGVsZW0uc2Vjb25kKTsKCQkJbWFwMS5lcmFzZShlbGVtLmZpcnN0KTsKCQl9Cgl9CgkKCWZvcihhdXRvICZlbGVtOiBtYXAyKSB7CgkJY291dCA8PCAibmVnYXRpdmUgdmFsdWUgcGFpciA9ICIgPDwgZWxlbS5maXJzdCA8PCAiLCAiIDw8IGVsZW0uc2Vjb25kIDw8IGVuZGw7Cgl9Cn0=