deque

    1热度

    3回答

    我是用Python的collection.deque玩耍,并写了下面的基准Python的双端队列性能: #!/usr/bin/python import timeit if __name__=='__main__': number = 1000000 for r in (1,10,100,1000,5000,10000,100000): print r

    1热度

    2回答

    这需要锁定空闲,因为它必须在SMP系统的中断处理程序中运行。我不能锁。 我有一个连续的数组持有一些值。这个数组中的一些条目是“免费的”,它们没有被占用。我想列出这些条目,以便我可以快速分配一个条目。但是,我偶尔需要分配一个任意的条目。 因此,我看到以下将是一个很好的做事方式: 连续数组不仅包含值,还包含左指针和右指针,从而形成一个双端队列。只有空白值才有有效的左/右指针。我可以快速到达任意节点,因

    2热度

    4回答

    我有一个应用程序,需要存储一个电压数据序列,每个条目是类似的一对{时间,电压} 时间不一定是连续的,如果电压不动,我不会有任何阅读。 的问题是,我还需要有查找时间戳,等,getVoltageOfTimestamp(float2second(922.325)) 我的解决办法是有存储所述paires,然后每30秒的双端队列功能,我做了取样和索引存储到地图 的std ::地图, 所以里面getVolta

    1热度

    6回答

    正如标题所暗示的,我遇到了一个我的程序问题,我使用std :: list作为堆栈,并且遍历列表的所有元素。当名单变得非常庞大时,该计划耗时过长。 有没有人对此有一个很好的解释?它是一些堆栈/缓存行为? (解决通过更改列表到std :: vector和std :: deque的(顺便说一个惊人的数据结构),一切问题突然响起如此之快) 编辑:我不是一个傻瓜,我不访问列表中的元素。我对列表做的唯一事情是

    7热度

    1回答

    刚才,我正在阅读Josuttis的STL书籍。 据我所知 - C++ vector是一个可以重新分配的c数组。所以,我明白,为什么在push_back()之后所有迭代器和引用都可能失效。 但我的问题是关于std :: deque。据我所知它是一个大块数组(c数组的c数组)。因此,push_front()在开始处插入元素,如果没有空间,则deque分配新块,并将该元素放置在分配块的末尾。 在插入()

    0热度

    3回答

    我在做什么错? #include <iostream> #include <deque> using namespace std; struct mystruct { int number1; int number2; }; int main() { std::deque<mystruct> mydeque; mydeque.number

    1热度

    1回答

    使用http://www.cppreference.com/wiki/stl/deque/insert作为参考,我在某些位置将值插入到一个deque中。 例如,如果双端队列A是: a, b, d, e, g 与一个迭代指向d,我可以: A.insert(iter, c); // insert val c before loc iter //deque is now a, b, c, d, e

    11热度

    4回答

    我是一个来自C++/STL的相对较新的Java程序员,并且正在寻找一个具有这些特性的类(C++ std :: deque,据我了解): O(1),用于在开始/结束的插入/取出性能 O(1)通过指数为查找性能 是可增长的集合(不需要固定大小边界) 是否有与此相当的Java?我发现Java 1.6 [ArrayDeque]类具有插入/删除和可扩展特性,但似乎没有按索引查找,除非调用toArray(),

    2热度

    3回答

    我有一个std :: deque的包装器,用于排队音频数据(通过libavcodec进入块,如果有的话)。 这是需要16位的数据的缓冲器,并将其添加到双端队列锁定/解锁的 void AVAudioBuffer::enqueue(int16_t* src, size_t num, double pts) { // Save current size of buffer size_