#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”; 这种方式插入元素的)