我找不到类似的东西。 我发现boost库有一个实现,但我不确定是否只想为循环缓冲区实现插入整个库。
答案 0 :(得分:1)
Qt的公共API中没有这样的类型。如果你愿意使用Qt的内部,有两类注意事项:
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
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,或者理想地删除构建文件夹。 仅仅重建项目将无法编译代码!
答案 1 :(得分:0)
有一个叫QCircularBuffer
。
http://doc.qt.io/archives/qt-5.5/qt3d-qcircularbuffer.html#details
QCircularBuffer<T>
是Qt的通用容器类之一(来自文档)。所以这个类将满足容器类的所有基本要求。
需要包含 3dcore 库(Qt3D
标题)。
检查您的Qt版本是否支持。我在 Qt5.5 中看到了这个。