Qt有循环缓冲区吗?

时间:2017-05-25 19:48:41

标签: c++ qt

我找不到类似的东西。 我发现boost库有一个实现,但我不确定是否只想为循环缓冲区实现插入整个库。

2 个答案:

答案 0 :(得分:1)

Qt的公共API中没有这样的类型。如果你愿意使用Qt的内部,有两类注意事项:

  1. QRingBuffer

    存储字节,并为I / O缓冲量身定制。由QSerialPort等使用

    QT += core-private  # In the .pro file
    
    #include <private/qringbuffer_p.h>
    

    https://github.com/qt/qtbase/blob/5.9/src/corelib/tools/qringbuffer_p.h

  2. QCircularBuffer

    存储任意类型并且是一般用途。提供合理的STL风格的API。

    QT += 3dcore-private  # In the .pro file
    
    #include <private/qcircularbuffer_p.h>
    

    https://github.com/qt/qt3d/blob/5.9/src/core/resources/qcircularbuffer_p.h

  3. 注意:将私有模块添加到项目文件后,您必须重新运行qmake,或者理想地删除构建文件夹。 仅仅重建项目将无法编译代码!

答案 1 :(得分:0)

有一个叫QCircularBuffer

http://doc.qt.io/archives/qt-5.5/qt3d-qcircularbuffer.html#details

QCircularBuffer<T> 是Qt的通用容器类之一(来自文档)。所以这个类将满足容器类的所有基本要求。

需要包含 3dcore 库(Qt3D标题)。

检查您的Qt版本是否支持。我在 Qt5.5 中看到了这个。

相关问题