私は外部メモリのデータ構造を開発していますが、固定の RAM メモリを維持するために、(おそらく LRU 戦略を使用して) 自動的にスワッピングを行うベクトル構造にデータを配置する必要があります。stxxl ベクトル構造体を試してみましたが、問題は のような動的構造体を格納できないことstd::vector
です。これは機能しません:
stxxl::vector< std::vector<T> >
この種の要素を処理できる外部メモリ構造のライブラリはありますか?
私は外部メモリのデータ構造を開発していますが、固定の RAM メモリを維持するために、(おそらく LRU 戦略を使用して) 自動的にスワッピングを行うベクトル構造にデータを配置する必要があります。stxxl ベクトル構造体を試してみましたが、問題は のような動的構造体を格納できないことstd::vector
です。これは機能しません:
stxxl::vector< std::vector<T> >
この種の要素を処理できる外部メモリ構造のライブラリはありますか?
のテンプレート パラメータstxxl::vector
は、含まれているアイテムのタイプですが、タイプでstd::vector
はありません。テンプレート引数がありません。
たとえば を試すか、 の itemtype をパラメータ化する場合はstxxl::vector<std::vector<int> >
、囲んでいるテンプレート クラスを作成します。stxxl::vector
std::vector
更新: いくつかの調査の後、Stxxl: FAQの最初のページ http://algo2.iti.kit.edu/stxxl/trunk/FAQ.htmlでこれを見つけました
STXXL コンテナーのパラメーター化
stxxl::vector のような STXXL コンテナー タイプは、POD (つまり、仮想関数やユーザー定義のコピー代入/デストラクタなどがない) であり、内部メモリへの参照 (ポインターを含む) を含まない値の型でのみパラメーター化できます。 . 通常、「複雑な」データ型はこの要件を満たしていません。
stxxl::vector<std::vector<T> >
これが、とstxxl::vector<stxxl::vector<T> >
が無効な理由です。必要に応じて、 を使用するstd::vector<stxxl::vector<T> >
か、インデックス計算を行って 2 次元配列をエミュレートします。