// constructing unordered_maps
#include <iostream>
#include <string>
#include <unordered_map>
typedef std::unordered_map<std::string,std::string> stringmap;
stringmap merge (stringmap a,stringmap b) {
stringmap temp(a); temp.insert(b.begin(),b.end()); return temp;
}
int main ()
{
stringmap first; // empty
stringmap second ( {{"apple","red"},{"lemon","yellow"}} ); // init list
stringmap third ( {{"orange","orange"},{"strawberry","red"}} ); // init list
stringmap fourth (second); // copy
stringmap fifth (merge(third,fourth)); // move
stringmap sixth (fifth.begin(),fifth.end()); // range
std::cout << "sixth contains:";
for (auto& x: sixth) std::cout << " " << x.first << ":" << x.second;
std::cout << std::endl;
return 0;
}
Ly8gY29uc3RydWN0aW5nIHVub3JkZXJlZF9tYXBzCiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPHVub3JkZXJlZF9tYXA+Cgp0eXBlZGVmIHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmluZyxzdGQ6OnN0cmluZz4gc3RyaW5nbWFwOwoKc3RyaW5nbWFwIG1lcmdlIChzdHJpbmdtYXAgYSxzdHJpbmdtYXAgYikgewogIHN0cmluZ21hcCB0ZW1wKGEpOyB0ZW1wLmluc2VydChiLmJlZ2luKCksYi5lbmQoKSk7IHJldHVybiB0ZW1wOwp9CgppbnQgbWFpbiAoKQp7CiAgc3RyaW5nbWFwIGZpcnN0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVtcHR5CiAgc3RyaW5nbWFwIHNlY29uZCAoIHt7ImFwcGxlIiwicmVkIn0seyJsZW1vbiIsInllbGxvdyJ9fSApOyAgICAgICAvLyBpbml0IGxpc3QKICBzdHJpbmdtYXAgdGhpcmQgKCB7eyJvcmFuZ2UiLCJvcmFuZ2UifSx7InN0cmF3YmVycnkiLCJyZWQifX0gKTsgIC8vIGluaXQgbGlzdAogIHN0cmluZ21hcCBmb3VydGggKHNlY29uZCk7ICAgICAgICAgICAgICAgICAgICAvLyBjb3B5CiAgc3RyaW5nbWFwIGZpZnRoIChtZXJnZSh0aGlyZCxmb3VydGgpKTsgICAgICAgIC8vIG1vdmUKICBzdHJpbmdtYXAgc2l4dGggKGZpZnRoLmJlZ2luKCksZmlmdGguZW5kKCkpOyAgLy8gcmFuZ2UKCiAgc3RkOjpjb3V0IDw8ICJzaXh0aCBjb250YWluczoiOwogIGZvciAoYXV0byYgeDogc2l4dGgpIHN0ZDo6Y291dCA8PCAiICIgPDwgeC5maXJzdCA8PCAiOiIgPDwgeC5zZWNvbmQ7CiAgc3RkOjpjb3V0IDw8IHN0ZDo6ZW5kbDsKCiAgcmV0dXJuIDA7Cn0=