Jon*_*Mee 5 c++ swap dictionary c++11 c++03
如果我有两个,我map<string, int>怎么能交换每个元素map?
例如:
map<string, int> ps{ { "triangle", 0 }, { "cross", 1 }, { "square", 2 }, { "circle", 3 } };
map<string, int> xbox{ { "y", 0 }, { "a", 1 }, { "b", 2 }, { "x", 3 } };
swap(move(ps["cross"]), move(xbox["x"]));
Run Code Online (Sandbox Code Playgroud)
该swap说法显然是错误的,但解释了我想做的事情.在swap声明之后我想ps包含:
{ "triangle", 0 }{ "x", 3 }{ "square", 2 }{ "circle", 3 }并xbox包含:
{ "y", 0 }{ "a", 1 }{ "b", 2 }{ "cross", 1 }我希望有一种很好的方法可以用C++ 11的移动语法来做到这一点,但是如果可能的话,我想要一个答案,它也描述了如何在C++ 03上实现这一点.
map 实现为有序树.
您不能简单地用新密钥替换密钥,因为它可能必须放在树中的其他位置.因此,你无法交换.
删除手动重新插入kv对.
(作为旁注:你甚至没有告诉我们这些价值会发生什么......)
| 归档时间: |
|
| 查看次数: |
242 次 |
| 最近记录: |