【发布时间】:2020-01-23 05:29:37
【问题描述】:
我想将键和值转移到另一个地图,但同时留下旧的键和值。
我该怎么做? 我的例子不起作用。
map1.emplace(1, 1001);
map1.emplace(2, 1002);
map1.emplace(3, 1003);
map2.emplace(10, 1010);
map2.emplace(11, 1011);
map2.emplace(12, 1012);
map1 = map2;
cout << map1[1] << endl;
cout << map1[10] << endl;
cout << map2[3] << endl;
【问题讨论】:
-
跟即将到来的C++20有什么关系?
-
“不起作用”是什么意思?发生什么了?什么是预期的输出?实际输出是多少?请花一些时间阅读有关how to ask good questions 和this question checklist 的信息。
-
也许您应该花点时间阅读更多关于
std::map及其assignment operator 的信息(尤其是它说“替换容器的内容”的部分。 (强调我的))。 -
您可能也有兴趣阅读
std::copy和std::insert_iterator,它们可以帮助您将值从一张地图复制到另一张地图。 -
std::copy(map2.begin(), map2.end(), std::inserter(map1, map1.end()));,假设您事先设置了适当的包含,可能您正在尝试做。