0

C++ STL API を Berkeley DB 4.8 に使用しています。また、begin() を使用して作成された db_map または db_multimap const イテレーターの一括取得を使用できますが、マルチマップの場合は find() (または lower_bound()) から作成されたものは使用できません。 )。

find() の単一アイテム ランダム アクセスの使用は、一括取得を使用するのはもったいないことですが、find() のポイントから btree の順序で多くのレコードにアクセスしたいので、一括取得が役立ちます。基礎となる C++ API はそれを許可しているように見えますが、STl API から可能ですか?

4

1 に答える 1

0

私はこれに対する解決策を自分で見つけました:

begin() のように BulkRetrievalOption 引数を含めるには、const_iterator lower_bound() メソッドをオーバーロードする必要があります。これにより、begin() と同じようにその引数を使用してインターレーター インスタンスが内部的に作成されますが、イテレーターは指定されたキー値の下限に移動します。

同じことが db_map::find にも当てはまります

于 2010-07-21T16:52:10.687 に答える