我有std::unordered_map<int, int>
。我不想使用其他结构,如树或其他任何导致延迟要求的结构。但在任何时候我都需要知道当前的最大键和最小键。我怎样才能做到这一点?分布不是均匀的,而是经常删除和插入最大值和最小值。因此,我需要比“删除当前最大/最小值时仅扫描整个地图以获取新的最大/最小值”更智能的东西。
我不想使用任何其他结构。我想用std::unordered_map
!
根据答案更新创建了这样的结构:
struct OrderBookItem {
int64_t price;
int32_t lots;
};
typedef multi_index_container
<OrderBookItem, indexed_by<
hashed_unique<
BOOST_MULTI_INDEX_MEMBER(OrderBookItem,int64_t,price)
>,
ordered_unique<
BOOST_MULTI_INDEX_MEMBER(OrderBookItem,int64_t,price),
std::greater<int64_t>
>
>> OrderBookContainer;