#include <iostream>
#include<map>
#include<string>
using namespace std;
int main()
{
map<int, string> mapMy;
mapMy[0] = "My";
mapMy[2] = "1";
map<int, string> mapYou;
mapYou[0] = "a";
mapYou[1] = "b";
mapYou[2] = "c";
mapMy.insert(mapYou.begin(), mapYou.end());
for (auto iter2 = mapMy.begin(); iter2 != mapMy.end(); ++iter2)
{
cout << iter2->second << endl;
}
/*
输出是
My
b
1
*/
return 0;
}
这是为什么呢?
解决方案:100分
map中不允许有键值相同的两个元素,你的mapYou中的0和2为键的已经有了,所以实际只插入了mapYou[1] = “b”;只一项
假如想允许有重复键值的元素,把map改成multimap即可(不过multimap是不支持mapMy[0] = “My”; 这种方式插入元素的)
假如想允许有重复键值的元素,把map改成multimap即可(不过multimap是不支持mapMy[0] = “My”; 这种方式插入元素的)