C++ 值上具有类似队列属性的关联容器
我有POD结构实例形式的数据。在“正常”条件下,我需要通过唯一的ID访问它们,当前是通过C++ 值上具有类似队列属性的关联容器,c++,map,priority-queue,C++,Map,Priority Queue,我有POD结构实例形式的数据。在“正常”条件下,我需要通过唯一的ID访问它们,当前是通过std::map。但是,如果出现问题,我需要按照POD结构的特定成员提供的顺序遍历数据 我不想在出错的情况下将映射的所有数据集复制到优先级队列中——这似乎代价高昂 我试着在std::map上运行std::make_heap,但这甚至无法编译,因为map的迭代器无法减去 排序键将定期更改,因此将数据保持在优先级队列中,并仅在映射中存储指针似乎不可行,特别是当通过映射(典型用例)进行访问时,间接寻址会变得更昂贵
std::map
。但是,如果出现问题,我需要按照POD结构的特定成员提供的顺序遍历数据
我不想在出错的情况下将映射的所有数据集复制到优先级队列中——这似乎代价高昂
我试着在std::map
上运行std::make_heap
,但这甚至无法编译,因为map
的迭代器无法减去
排序键将定期更改,因此将数据保持在优先级队列中,并仅在映射中存储指针似乎不可行,特别是当通过映射(典型用例)进行访问时,间接寻址会变得更昂贵
另一种方法是,将指针存储在单独的数据结构中,可以根据需要进行重配置,这似乎是可行的,但同步可能容易出错
std
库、boost或tbb中是否有任何东西可以实现我想要的功能?看起来这是一项为客户服务的工作。不确定是否有帮助,但您是否检查了?@rodrigo除了使用const
的一些有趣的功能外,就是它。把它作为答案贴出来,我会接受的。