具有值的类似队列属性的关联容器



我有 POD 结构实例形式的数据。在"正常"条件下,我需要通过唯一 ID 访问它们,目前通过 std::map .但是,如果出现问题,我需要按照 POD 结构的特定成员提供的顺序遍历数据。

我不想在出现错误时将映射的所有数据集复制到优先级队列中 - 这似乎很昂贵。

我尝试在std::map上运行std::make_heap,但这甚至不能编译,因为map的迭代器不能减去。

排序键会定期更改,因此将数据保留在优先级队列中并仅将指针存储在映射中似乎是不可行的,特别是当通过映射(典型用例)进行访问时,间接寻址变得更加昂贵。

相反,即将

指针存储在可以按需堆积的单独数据结构中似乎是可行的,但同步可能容易出错。

std库中有什么东西可以完成我想要的吗?

看起来这是Boost Multi-Index Containters Library的工作。