在c++中交换映射的键和值
Swapping keys and values of a map in C++
我正在寻找c++中的一个函数,用于交换映射的内容…那就是:那些曾经是钥匙的现在变成了物品,那些曾经是物品的现在变成了钥匙。你能告诉我这是怎么回事吗?
如Geoffroy所说,std::map
不允许这种行为。但是,您可能希望使用类似stl的容器Boost。Bimap -双向映射。
Bimap是一种数据结构,表示两个集合的元素之间的双向关系。容器被设计为作为两个相对的STL映射工作。集合X和集合Y之间的地图可以看作是从X到Y的地图(这个视图称为左地图视图)或从Y到X的地图(称为右地图视图)。
没有标准的方法/方式来做到这一点,你必须自己编写函数。
这不是一件很难做的事,但首先要考虑用另一种方式来做。
如果你必须反转你的键/值,那么你的代码可能有问题——尽管你没有保持容器的逻辑。
如果你想了解更多信息,请解释你为什么要这样做。
将映射中的项插入到multimap中-首先是值,其次是键,并使用适当的比较函数比较原始映射的两个值。一旦所有的值键项都被插入,multimap将按预期排序。完成工作!
相关文章:
- 通过从矢量中获取键和与映射中的键对应的值来创建映射
- 在具有 std::p air 键和值的映射中添加 b2vec2
- 如何将键和值从映射传输到另一个映射?
- 如何通过键和值以及在C 中的结果映射中比较两个地图?我们有任何STL API吗?
- 多重映射的每个元素是否同时包含键和值
- 如何正确使用带有智能指针和自定义类的映射作为键和值
- 如何使用 boost 连接映射的键和值,特别是如果值是结构
- 对象来映射键和值
- C++STL映射键和值工作不正常
- 使用C++中的函数指针映射枚举键和值
- 从变量映射键和值初始化
- 键和值属于同一类型的多重映射是否有任何意义
- 如何在C++中创建将键和值作为结构的映射
- 使用结构作为映射的键和值.find() 操作给出错误
- 从常量迭代器到映射向量,获取映射向量中映射元素的键和值
- std::映射绑定到所有键和值的堆的分配器
- 如何在c++中比较映射中的键和值
- 在c++中如何从另一个完整映射中插入键和值到空映射
- 在c++中交换映射的键和值
- 交换映射中的键和值