0

我正在使用 Berkeley DB 4.8 的 C++ STL API,并且我能够对使用 begin() 创建的 db_map 或 db_multimap const 迭代器使用批量检索,但不是从 find()(或用于 multimaps 的 lower_bound() 创建的迭代器) )。

我很欣赏 find() 的单个项目随机访问使用会浪费使用批量检索,但我想从我的 find() 点向前以 btree 顺序访问许多记录,因此批量检索会对我有所帮助。底层的 C++ api 似乎允许它,是否可以从 STl API 获得?

4

1 回答 1

0

我自己找到了解决方案:

您需要重载 const_iterator lower_bound() 方法以包含 BulkRetrievalOption 参数,就像 begin() 一样。这将像 begin() 一样使用该参数在内部创建交互器实例,然后将迭代器移动到提供的键值的下限。

同样适用于 db_map::find

于 2010-07-21T16:52:10.687 回答