【发布时间】:2013-03-27 19:47:59
【问题描述】:
我想知道是否有人可以建议一个 c++ 数据结构,它具有环形缓冲区的功能(保证有限存储),但同时允许对环形缓冲区进行有效的线程安全搜索以查找指定数据?
【问题讨论】:
-
你能给我们一个用例吗?可能有更好的方法来做到这一点。
-
我已经使用 boost::multi_index 实现了这一点。见:boost.org/doc/libs/1_53_0/libs/multi_index/doc/index.html
-
当然,我收到了 MarketDataDepth(MDD - 多个出价和询价)。每个 MDD 都由 unint64_t、MDDTag 标记。我需要存储一些 MDD(因此是 RingBuffer),然后如果需要发送订单,则会给出 MDDTag,并且我需要找到由该 MDDTag 映射的 MDD 以从中提取某些属性MDD,因此需要有效地搜索 RB。
-
由于数据可以在RingBuffer被搜索的同时进来,所以整个事情需要是线程安全的。
-
@user1676605:据我所知,环形缓冲区中的溢出是下一个写指针等于读指针时。 IE,缓冲区已满。
标签: c++ boost data-structures stl std