我找不到任何類似的東西。 我發現boost庫有一個實現,但我不確定我想只爲循環緩衝區實現插入整個庫。Qt是否有循環緩衝區?
回答
有一個叫QCircularBuffer
。
http://doc.qt.io/archives/qt-5.5/qt3d-qcircularbuffer.html#details
QCircularBuffer<T>
是Qt的通用容器類(來自文檔)中的一個。所以這個類將滿足容器類的所有基本要求。
需要包含3dcore庫(Qt3D
標題)。
檢查你的Qt版本是否支持它。我在Qt5.5中看到了這個。
在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的,或者理想刪除build文件夾。 僅僅重建該項目將無法獲得編譯的代碼!
這些只是爲5.X.X版本?我們仍然使用4.X.X版本。 – kakush
您可以從Qt 5複製它們。它們將正常工作。對於任何一個,它只有三個文件:'qfoo.h','qfoo_p.h'和'qfoo.cpp'。 –
- 1. Qt和Boost循環緩衝區
- 2. 高效循環緩衝區?
- 3. 逆循環緩衝區
- 4. 爲什麼我的環形緩衝區/循環緩衝區在java打破?
- 5. 循環字符數組緩衝區 - c
- 6. O(1)haskell中的循環緩衝區?
- 7. C++簡單循環緩衝區隊列
- 8. Java中的循環緩衝區?
- 9. VB.NET中的循環緩衝區
- 10. 循環緩衝區的線程安全
- 11. 發佈WEB音頻緩衝區循環
- 12. 斯卡拉集合循環緩衝區
- 13. Socket.Send緩衝區大小是否有限?
- 14. 循環緩衝區的用途是什麼?
- 15. 在Linux下調試:是否存在類似tty的循環緩衝區實現?
- 16. 兩個循環緩衝區是否相等? (雖然忽略轉變)
- 17. 我們是否可以使用blockingqueue來實現循環緩衝區
- 18. 問題有關C實現循環緩衝區的
- 19. Java - 環形緩衝區
- 20. PHP模板循環緩衝
- 21. Recv環形緩衝區vs簡單緩衝區
- 22. async_write - boost。它是否複製緩衝區?
- 23. 如何在C中實現循環列表(環形緩衝區)?
- 24. Qt中的緩衝區溢出錯誤?
- 25. FreeBSD:有關NIC環形緩衝區,mbufs和bpf緩衝區的問題
- 26. 從緩衝區外讀取是否也算作緩衝區溢出?
- 27. 標準gcc發行版中是否有環形緩衝區實現?
- 28. 緩衝區溢出緩衝區長度
- 29. 幀緩衝區/顏色緩衝區?
- 30. 有沒有辦法在while循環中將數字添加到「緩衝區」?
由於boost是一個僅頭文件庫,你不只是需要循環緩衝相關的文件? – NathanOliver
@NathanOliver一方面,最終編譯的可執行文件或庫只會生成與循環緩衝區相關的代碼。另一方面,你需要下載整個boost庫(我使用的每個boost庫都有很多其他boost庫的依賴) – Justin