私は持っていstd::unordered_map<int, int>
ます。ツリーなどの他の構造は使用したくありませんが、遅延要件が発生するものは何もありません。しかし、いつでも現在の最大キーと最小キーを知る必要があります。どうやってやるの?分布は均一ではなく、代わりに最大値と最小値が頻繁に削除および挿入されます。したがって、「現在の最大値/最小値が削除されたときに、マップ全体をスキャンして新しい最大値/最小値を取得する」よりもスマートなものが必要です。
私は他の構造を使用したくありません。使いたい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;