#include <map>
#include <iostream>
template<typename MapT>
void join_inplace(MapT& m1, MapT const& m2)
{
for (auto p : m2)
m1[p.first] = p.second;
}
int main()
{
std::map<int, int> m1{ {3, 4}, {6, 7} };
std::map<int, int> const m2{ {11, 5}, {6, 0} };
join_inplace(m1, m2);
for (auto p : m1)
std::cout << "{" << p.first << ": " << p.second << "}, ";
std::cout << "\n";
}
I2luY2x1ZGUgPG1hcD4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKdGVtcGxhdGU8dHlwZW5hbWUgTWFwVD4Kdm9pZCBqb2luX2lucGxhY2UoTWFwVCYgbTEsIE1hcFQgY29uc3QmIG0yKQp7CiAgICBmb3IgKGF1dG8gcCA6IG0yKQogICAgICAgIG0xW3AuZmlyc3RdID0gcC5zZWNvbmQ7Cn0KCmludCBtYWluKCkKewogICAgc3RkOjptYXA8aW50LCBpbnQ+IG0xeyB7MywgNH0sIHs2LCA3fSB9OwogICAgc3RkOjptYXA8aW50LCBpbnQ+IGNvbnN0IG0yeyB7MTEsIDV9LCB7NiwgMH0gfTsKCiAgICBqb2luX2lucGxhY2UobTEsIG0yKTsKCiAgICBmb3IgKGF1dG8gcCA6IG0xKQogICAgICAgIHN0ZDo6Y291dCA8PCAieyIgPDwgcC5maXJzdCA8PCAiOiAiIDw8IHAuc2Vjb25kIDw8ICJ9LCAiOwogICAgc3RkOjpjb3V0IDw8ICJcbiI7Cn0=