0

boost::multi_index::multi_index_containerハードディスク ストレージの場合、赤黒木 (のようなもの) に基づくマルチ インデックス コンテナーが必要です。すべてのデータは、メモリではなくハードディスクに保存する必要があります。

記載されている条件が満たされるようなオープンソースのコンテナはありますか?

ノート。私は使用しますC++

4

3 に答える 3

1

インメモリソリューションを使用している場合は、メモリマップトファイルとカスタムアロケータを使用して永続ストレージを実現できます。

于 2010-08-19T12:04:25.647 に答える
1

SQLiteはどうですか?ディスクをバッキング ストアとして使用でき、Boost Multi Index と同様に、データの複数のインデックスをサポートします。

于 2011-03-10T13:21:03.030 に答える
1

私は何も知らないのではないかと心配しています。

ハードディスクストレージについては、STXXLを参照することをお勧めします。これは、ディスクにのみ収まるデータに適合した STL コンテナとアルゴリズムを提案しています。彼らは、基本的に可能な限りメモリにキャッシュし、可能な場合はディスクアクセスを遅らせることにより、よりスムーズな操作を可能にするために多くのことを実装しました。

これでマルチインデックスは取得できませんが、少なくともSTLは取得できます:)

次に、決定した場合は、マルチインデックスを移植して、STXXL によって提供される機能を使用できます。それらは、コンテナ自体からの IO アクセス / メモリ キャッシングを分離しています。

または、STL 準拠のコンテナーに基づいて、必要なものを単純に作成することもできます。

于 2010-08-19T14:35:35.960 に答える