我正在开发一个内部包含 std::map 的类,现在功能是最佳的,但现在我需要旋转 map ,我的意思是通过旋转更改顺序,除了对应的值之外的 map 元素 ID对于这些值,例如:
给定:
Map[122]=1
Map[12]=2
Map[3]=45
应用旋转算法一次:
Map[12]=2
Map[3]=45
Map[122]=1
再次应用旋转算法:
好吧,我的第一个意图是编写一个执行此操作的算法,但我是 c++ 新手
Map[3]=45
Map[122]=1
Map[12]=2
我在 STL 库中是否有一个我现在看不到的正确解决方案? 谢谢
最佳答案
没有。
map 元素的顺序不是您可以控制的。它是固有的,基于排序键。
当然,您可以提供自己的比较器来操纵容器的底层顺序。
但是,您不应该依赖 map 中的顺序。它不是序列容器,并且根本不是为您将顺序用作属性而设计的。
与其“旋转”,不如每次都在容器中的不同位置开始迭代,然后“环绕”?
关于c++ - std::map 使用 STL::map 旋转方法或算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18242102/