如何连接两个c ++映射

Nik*_*las 1 c++ merge dictionary concat insert

有人知道如何连接这两个地图:

map<string, map<string,string>> map1;
map<string, map<string,string>> map2;
Run Code Online (Sandbox Code Playgroud)

我只想补充map2map1,并保持所有的元素已经在map1IE加载map2在年底map1.我试过map1.insert(map2.begin(), map2.end())但它不起作用,因为它覆盖了旧的元素map1.

MSa*_*ers 5

如果你只想合并它们但是在碰撞的情况下保留map1中的元素,那么只需反转地图:

std::swap(map1, map2);
map1.insert(map2.begin(), map2.end());
Run Code Online (Sandbox Code Playgroud)

这当然假设在合并之后,您只对结果感兴趣并且在旧集合中更长.