1

私は外部メモリのデータ構造を開発していますが、固定の RAM メモリを維持するために、(おそらく LRU 戦略を使用して) 自動的にスワッピングを行うベクトル構造にデータを配置する必要があります。stxxl ベクトル構造体を試してみましたが、問題は のような動的構造体を格納できないことstd::vectorです。これは機能しません:

stxxl::vector< std::vector<T> >

この種の要素を処理できる外部メモリ構造のライブラリはありますか?

4

1 に答える 1

6

のテンプレート パラメータstxxl::vectorは、含まれているアイテムのタイプですが、タイプでstd::vectorはありません。テンプレート引数がありません。

たとえば を試すか、 の itemtype をパラメータ化する場合はstxxl::vector<std::vector<int> >、囲んでいるテンプレート クラスを作成します。stxxl::vectorstd::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 次元配列をエミュレートします。

于 2011-12-03T05:10:24.920 に答える