Assuming you want to preserve the elements in mapA, and merge elements in mapB for which there is no key in mapA:
mapA.insert(mapB.begin(), mapB.end())
will do what you want, I think.
(EDIT: If you are using C++17 or newer, consider this answer: https://stackoverflow.com/a/56594603/118150)
Working example:
#include <iostream>
#include <map>
void printIt(std::map<int,int> m) {
for(std::map<int,int>::iterator it=m.begin();it!=m.end();++it)
std::cout << it->first<<":"<<it->second<<" ";
std::cout << "\n";
}
int main() {
std::map<int,int> foo,bar;
foo[1] = 11; foo[2] = 12; foo[3] = 13;
bar[2] = 20; bar[3] = 30; bar[4] = 40;
printIt(foo);
printIt(bar);
foo.insert(bar.begin(),bar.end());
printIt(foo);
return 0;
}
output:
:!./insert
1:11 2:12 3:13
2:20 3:30 4:40
1:11 2:12 3:13 4:40