其他分享
首页 > 其他分享> > c – 如何合并两个STL地图?

c – 如何合并两个STL地图?

作者:互联网

如何将两个STL地图合并为一个?它们都具有相同的键和值类型(map< string,string>).如果密钥重叠,我想优先考虑其中一个地图.

解决方法:

假设您要保留mapA中的元素,并在mapB中合并mapA中没有键的元素:

mapA.insert(mapB.begin(), mapB.end())

我想会做你想做的事.

工作范例:

#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;
}

输出:

:!./insert
1:11 2:12 3:13
2:20 3:30 4:40
1:11 2:12 3:13 4:40

标签:c,stl,merge,maps,stdmap
来源: https://codeday.me/bug/20191003/1850883.html