我有 POD 结构实例形式的数据。在“正常”条件下,我需要通过唯一 ID 访问它们,目前通过std::map
. 但是,如果出现问题,我需要按照 POD 结构的特定成员提供的顺序遍历数据。
我不想将地图的所有数据集复制到优先级队列中以防出错——这似乎太昂贵了。
我尝试在std::make_heap
上运行std::map
,但这甚至无法编译,因为map
' 的迭代器不能被减去。
排序键会定期更改,因此将数据保留在优先级队列中并仅将指针存储在映射中似乎是不可行的,尤其是通过映射(典型用例)的访问因间接而变得更加昂贵.
反之亦然,即将指针存储在可按需堆化的单独数据结构中似乎是可行的,但同步可能容易出错。
图书馆、boost 或 tbb 中有什么std
可以完成我想要的吗?