批量读取使用Berkeley DB,C ++ STL接口

时间:2010-07-16 15:56:49

标签: c++ stl berkeley-db

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

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

1 个答案:

答案 0 :(得分:0)

我自己找到了解决方法:

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

同样适用于db_map :: find