問題タブ [stxxl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - stxxl ディスク ファイルからベクトルを保存および読み取る
stxxl ライブラリを、ベクター構造のデータをファイルに保存するだけでなく、プログラムの再実行でそのファイルから復元する方法で使用しようとして苦労しています。
ファイル ( http://stxxl.sourceforge.net/tags/master/classstxxl_1_1vector.html#a4d9029657cc11315cb77955fae70b877 )からベクトルを作成できることがわかりましたが、クラス「ファイル」にはこれらの関数しか含まれていません ( http://stxxl. sourceforge.net/tags/master/classstxxl_1_1file.html ) 与えられたパスを持つ既存のファイルに実際にアクセスする方法 (私が見ることができる) はありません。
以前にこのライブラリを使用したことがある人は、その方法を知っていますか?
前もって感謝します
c++ - STXXL 文字列の扱い
私は大規模なデータセットを扱っています。stxxl で使用したいクラスに文字列を格納する方法を教えてください。私はいくつかの議論を読みましたが、文字列はPOD型ではないため、stxxl::vectorに格納できないと言われていましたが、試してみてデータを確認したところ、すべて問題ないようです。ここでアプローチも見ましたhttps://github.com/Project-OSRM/osrm-backend/blob/725b93a961625a7b04d54806d7e0f80252a6bcd0/extractor/extraction_containers.hpp、stxxl::vectorを使用しているため、stdをサポートするようにライブラリが更新された可能性があります: :ストリング?
また、文字列を POD として格納し、文字列を char のベクトルに格納し、配列内の上限と下限のインデックスを記憶するマップに格納するコードも作成しました。しかし、このアプローチは、アプリケーションで使用される多くの std::map につながります。
};
私のアプリケーションの問題は、主に通りと POI の名前であるいくつかの文字列データを保存していることです。多分私は間違ったライブラリを使用しています。もしそうなら、前処理中にデータを保存するためのより良いアプローチをお勧めできますか?
c++ - C++: 外部メモリ二分探索木を作成するのに適した STXXL のデータ型はどれですか?
ライブラリとしてstxxlを使用して、データが外部メモリにある外部メモリ バイナリ検索ツリー データ構造を作成したいと考えています。
この目的のために、ツリーのノードとして使用するのに適した STXXL のデータ型。ツリーのノードとして stxxl:Vector を使用する場合、それらへのポインタをどのように保持しますか。
STXXL:Vector のドキュメントを読みましたが、理解するのが非常に論理的であるポインターを使用することは明らかに不可能です。
警告 : 外部ベクトルの要素への参照を保存しないでください。このような参照は、ベクターの要素への以降のアクセス中に無効になる可能性があります。
次に、「stxxl」データ型を使用してバイナリ サーチ ツリー データ構造を保持する代替手段は何ですか?
c++ - STXXL:2番目の要素でペアのベクトルをソートする方法は?
同様の質問がここにあります:ペアの 2 番目の要素に基づいてペアのベクトルを並べ替えるにはどうすればよいですか? しかし、私は外部メモリのソートに興味があります。
内部メモリの並べ替えからの類推を使用してみましたが、エラーは STXXL の sorter_stream.h ファイルで次のように発生します。
私のコード:
エラー :
アップデート:
min_value(),max_value() 関数の戻り値の型を次のように my_pair に変更します。
次のエラーが発生します。
PS:初心者(評判<50)であるため、コメントすることはできません。そのため、新しい質問を書きます。
c++ - ヘッダー付きのファイルへの stxxl::vector のマッピング
既知の固定サイズのヘッダーで始まり、連続するレコードを表す一連の固定サイズのバッファー (POD) が続く 大きなバイナリ ( STL ) ファイルがあります。
stxxl::vector
ファイルのレコード部分を高速なコア外処理のためにマップしたいと考えています。
にはstxxl::vector<>
を受け入れる ctor がstxxl::file
ありますが、正しいオフセットからファイルの解析を開始するように ctor に指示する方法がわかりません。
私はこれを行うことができますか?
c++ - 並列 STXXL ベクトルの初期化
次の最小限の例は、(openMP を使用して) コンテナーを並行して初期化するときの stxxl の動作を示しています。
どちらかに遭遇する
また
複数のスレッドに stxxl コンテナーを割り当てるにはどうすればよいですか?
c++ - STXXL でのストリームと反復の結合
STXXLは、データ処理のストリーミング モデルをサポートしています。STXXL データは、それを反復処理する (例: を使用stxxl::for_each
) か、ストリーム モードに変換する (例:streamify()
効率的な処理のためにこのようなストリーム変換を構成できる場所を使用する) ことによって処理できます。ストリームの結果は、 を使用してイテレータに戻すことができますmaterialize()
。
入力ストリームに適用したい一連のストリーム変換があります。ただし、結果を出力「コンテナー」に格納する必要はありません。
私が必要としているのは、materialize
出力イテレータを使用せずにストリームを駆動するだけのような関数です。基本的にはstxxl::for_each
.
STXXL にそのような同様の機能はありますか?
当然、カスタムの「何もしない」出力イテレータを作成してこれらをmaterialize()
に渡すこともできますが、もっと洗練された解決策があるかどうか疑問に思っています。