Qt有循环缓冲吗?

  • 本文关键字:循环缓冲 Qt c++ qt
  • 更新时间 :
  • 英文 :


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

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

注意:将私有模块添加到项目文件后,您必须重新运行 qmake,或者理想情况下删除构建文件夹。仅仅重建项目不会获得要编译的代码!

有一个叫QCircularBuffer .

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

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

需要包括 3dcore 库(Qt3D标题(。

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

最新更新