Массовое чтение с использованием интерфейса Berkeley DB, C ++ STL - PullRequest
0 голосов
/ 16 июля 2010

Я использую C ++ STL API для Berkeley DB 4.8 и могу использовать массовый поиск для константного итератора db_map или db_multimap, созданного с помощью begin (), но не тот, который создан из find () (или lower_bound ( ) для мультикарт).

Я ценю, что использование произвольного доступа по одному элементу при использовании find () было бы тратой на массовое извлечение, но я хочу получить доступ ко многим записям в порядке btree, начиная с точки find (), поэтому массовое извлечение поможет мне. Базовый API C ++, кажется, позволяет это сделать, возможно ли это из STl API?

1 Ответ

0 голосов
/ 21 июля 2010

Я сам нашел решение этой проблемы:

Вам необходимо перегрузить метод const_iterator lower_bound (), чтобы включить аргумент BulkRetrievalOption, как begin (). Это внутренне создаст экземпляр интегратора, используя этот аргумент, как и begin (), но затем переместит итератор к нижней границе предоставленного значения ключа.

То же самое относится и к db_map :: find

...