2017-05-25 21 views
1

似たようなものは見つかりませんでした。 私はboostライブラリが実装を持っていることがわかりましたが、循環バッファ実装のためだけにライブラリ全体を挿入したいとは思えません。Qtには循環バッファがありますか?

+0

boostはヘッダのみのライブラリなので、サイクリックバッファ関連のファイルは必要ありませんか? – NathanOliver

+0

@ NathanOliver一方で、最終コンパイルされた実行可能ファイルまたはライブラリは、循環バッファに関連するコードを生成しただけです。一方、ブーストライブラリ全体をダウンロードする必要があります(使用したすべてのブーストライブラリは、他のブーストライブラリに多くの依存関係があります) – Justin

答えて

0

QCircularBufferと呼ばれるものがあります。

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

QCircularBuffer<T>(ドキュメントから)Qtの汎用コンテナクラスの一つです。したがって、このクラスはコンテナクラスのすべての基本要件を満たします。

を含める必要があります。3dcoreライブラリ(Qt3Dヘッダー)。

Qtのバージョンをチェックしてください。私はこれをQt5.5で見ました。

+1

単一のコンテナのために別のモジュール全体をスローするオーバーヘッドはかなりあります。それはQtCoreにあったはずです... – dtech

+0

@dtech私はあなたに同意します100% – Naidu

+0

このクラスはもう存在しません。これは一時的なAPIバグでした。あなたは確かにソースを自分のコードにコピーすることができます。 –

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を提供します。

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

QT += 3dcore-private # In the .pro file 

#include <private/qcircularbuffer_p.h> 
は:プロジェクトファイルにプライベートモジュールを追加した後、あなたはqmakeのを再実行、または理想的にビルドフォルダを削除する必要があります。 プロジェクトを単なる再構築しても、コンパイルするコードは得られません!

+0

これらは5.X.X版のみですか?私たちはまだ4.X.Xのバージョンを使用しています。 – kakush

+0

Qt 5からコピーすることができます。問題なく動作します。いずれの場合でも、 'qfoo.h'、' qfoo_p.h'、 'qfoo.cpp'の3つのファイルだけです。 –

関連する問題