首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可搜索的环形缓冲区

可搜索的环形缓冲区
EN

Stack Overflow用户
提问于 2013-03-28 03:47:59
回答 1查看 859关注 0票数 3

我想知道是否有人可以建议一种c++数据结构,它既具有环缓冲区(有保证的有限存储)的能力,同时又允许高效的线程安全地搜索指定数据的环缓冲区?

EN

回答 1

Stack Overflow用户

发布于 2013-06-25 16:55:47

Intel TBB containers非常适合解决这类问题。

concurrent_unordered_map应该为你的情况做一些事情,但是如果你真的想要一些环结构,你可能可以使用concurrent_bounded_queue并进行自己的推送来模拟环的行为(见下文)。然而,这种结构的搜索复杂度是线性的,而不是地图中的对数复杂度。

代码语言:javascript
复制
template<class T>
struct concurrent_ring : tbb::concurrent_bounded_queue<T>
{
    void push(const T& t) 
    {
        while(!tbb::concurrent_bounded_queue<T>::try_push(t)) 
           pop();
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15668076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档