相关疑难解决方法(0)

std :: unordered_map - 如何随时"跟踪"最大/最小键

我有std::unordered_map<int, int>.我不想使用树或其他任何其他结构导致延迟要求.但是在任何时候我都需要知道当前的最大键和最小键.我怎样才能做到这一点?分布不均匀,而是经常删除和插入max和min.因此,我需要比"只删除当前最大/最小值时扫描整个地图以获得新的最大值/分钟"更聪明的东西.

我不想使用任何其他结构.我想用std::unordered_map!

UPD根据答案创建这样的结构:

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;
Run Code Online (Sandbox Code Playgroud)

c++ boost unordered-map boost-multi-index c++11

1
推荐指数
1
解决办法
4835
查看次数

标签 统计

boost ×1

boost-multi-index ×1

c++ ×1

c++11 ×1

unordered-map ×1