QContiguousCache 是个特殊的 QMap<int, T>,而 QCircularBuffer 是个特殊的 QVector<T>,这是他们最本质的区别。
他们都会丢数据没错,但丢的算法不一样。
前者根据你 insert(row, t) 的 row 决定,丢弃离 row 最远的那个数据。应用场景是一个长长的列表,用户滚动到中间的时候会把最前和最后的数据丢掉。
后者总是从 index=0 开始覆盖写。是个圆环数据结构。应用场景是日志系统,总是把最旧的消息丢掉。
【 在 lwp (再也不跟人吵架了!!!) 的大作中提到: 】
: 在Qt3D里
: 打错了,是QCircularBuffer
:
https://doc.qt.io/archives/qt-5.5/qt3d-qcircularbuffer.html: ...................
--
FROM 183.253.138.*