c++ - 翻转 map 键值对

标签 c++ map flip

我有一张 map 。我想翻转键值,这样它就不会变成 map 。所以基本上第一张 map 的值成为第二张 map 的键。我该怎么做?

示例 map :

1 - 1.0
2 - 2.0

翻转后

1.0 - 1
2.0 - 2

最佳答案

最直接的方法(据我所知)是创建一个翻转类型的新映射,然后迭代旧映射并反向添加每个键值对。

例如,

map<int, float> if_map;

// insert some items into if_map
if_map[1] = 43.11;
if_map[44] = -13421.438;

map<float, int> reversed;

for (map<int, float>::iterator i = if_map.begin(); i != if_map.end(); ++i)
    reversed[i->second] = i->first;

关于c++ - 翻转 map 键值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8321316/

相关文章:

c++ - 右值保证了什么样的优化?

c++ - 使用 snprintf() 的 Fencepost 条件和可移植性?

c++ - 根据参数调用不同函数的宏

html - 悬停时图像翻转只是反射(reflect)图像,而不是实际翻转

iPhone Flip 转换 - 我可以在中途收到通知吗

raspberry-pi - 树莓派。当我使用 GPU 播放视频时,gstreamer-1.0 会翻转视频。 Videoflip 出现错误

c++ - 从函数返回::迭代器不编译

node.js - EJS 是否处理 array.map(callback)?

java - 我可以在 Java 中使用双键映射吗

api - 在 Google Maps API v3 中打开/关闭标记