circular-buffer

    3热度

    3回答

    我有一个数组,我想向后滚动它的位置。 我有一个布尔数组,我需要计算从给定单元格向前和向后有多少个真值。 我知道如果N是数组中元素的数量,我可以继续做i =(i + 1)%N。 但是如果我需要以相反的方式滚动它呢? 预先感谢您。

    0热度

    2回答

    我正在尝试实现循环缓冲区的缩小操作。 缓冲区有一个开始指针(m_start)并存储元素的数量(m_numelements)。当缓冲区已满时,我只需清除旧值。 假设我们有尺寸的阵列16 M_START = 9个 m_numelements = 11 欲这个阵列收缩成大小为8的阵列(可丢弃元件)。 这里的约束是旧数组的m_start(9)应映射到新数组的m_start%新容量(9%8 = 1)。 我试

    2热度

    1回答

    我想使用环形缓冲区,但不想实现我自己的,如果已经存在。标准的gcc发行版有一个吗?

    0热度

    1回答

    我有一个用C++编写的程序,它使用RtAudio(Directsound)以48kHz采样率采集和回放音频。 输入捕捉使用回调选项。该回调将数据写入环形缓冲区。 输出是一个阻塞写功能在一个单独的线程从环缓冲区读取。 如果输入和输出设备是相同的音频循环完美。 现在我想从设备1获取音频并在设备2上播放。每个设备都有自己的采样时钟,设置为48kHz,但不同步。几秒钟后,输入和输出不同步。 是否可以同步两

    0热度

    1回答

    我正在尝试开发一个使用两个结构的动态分配的C循环缓冲区。一个拥有详细信息,另一个主要用作从主循环到缓冲区结构的指针(因为在运行时会分配多个数组)。 由于它是一个圆形缓冲器,我有一个指针“下一个”,它指向该阵列中的下一个项目(所以最后一个数组索引指向所述第一等) 这是两个结构对象我有: typedef struct { int a; int b; struct1 *ne

    1热度

    1回答

    的如下描述: Boost Example 我producer在提供大量数据同一时间(无符号字符,+ - 3000值),就像一个矩阵它将逐行填充。 push缓冲区中这些值的最佳方式是什么?我应该绕过它们吗?或者我可以以某种方式在里面memcpy? 也是一样pop如果我想在同一时间阅读一堆值的... 这里是我想出了,任何理由这不应该被好? 我只需要确保RINGBUFFERSIZE % iSize =

    1热度

    1回答

    下面是从书“操作系统概念”第7版高尔文,摘录加涅第3章从硬拷贝自身: 下面的变量驻留在由生产者和消费者共享的内存区域进程: #define BUFFER_SIZE 10 typedef struct { . . . } item; item buffer[ BUFFER_SIZE ]; int in = 0; int out = 0; 共享缓冲器被实现为一个圆形阵列具有两个逻辑

    1热度

    2回答

    我正在考虑使用boost circular_buffer。从here: 为了达到最高效率,所述circular_buffer存储其在存储器的连续区域,其然后使元素: 使用固定存储器和没有隐式的或意外的存储器分配的。 但我应该使用circular_buffer调用cb.push_back(myObj)。为了进行这个调用,我必须安置这个对象。当我呼叫push_back时,我的新对象将从circular

    2热度

    1回答

    我想检测一个循环缓冲区是否是其他缓冲区列表的镜像或旋转长度相同。 例如给出下面3个缓冲器: AAABCCCA AABCCBAA AAAACCAA 然后: CCBAAAAC将匹配,因为它是所述第一缓冲器的镜像旋转。 目前我只是比较每个旋转中的每个缓冲区,然后颠倒缓冲区并再次完成。 这需要: 2*n*i缓冲区比较。 (其中n是比较两个缓冲区的数量,i是缓冲区的长度)。 有谁知道更快的算法? 要

    5热度

    1回答

    只是在这里,与循环缓冲区搞乱。这是一个合理的实施,还是有一个更快/更可靠的方法来剥皮这只猫? class CircularBuffer[T](size: Int)(implicit mf: Manifest[T]) { private val arr = new scala.collection.mutable.ArrayBuffer[T]() private var cu