Например, я добавил несколько ключей в БД, например,
<1 + 2>
<1 + 3>
<2 + 1>
<2 + 4>
<3 + 2>
Сначала Seek()
до <1, 2>, а затем Next()
до <1, 3>
После этого я хочу пропустить клавиши <2, 1> и <2, 4> (чей префикс 2
) и переместить итератор в <3, 2> без новой операции seek
.
Использование новой операции Seek()
неожиданно из-за того, что Seek()
стоит дорого.
Какой метод я должен использовать?
Этот метод пропуска сканирования похож на this
Я предпочитаю программировать как следующие строки:
DBIter* it = NewDBIterator(...);
set = {key1, key2, key3, ...};
Iterator key_iter = set.begin();
for (it->SeekToFirst(); it->Valid() && key_iter != set.end(); it->SkipToNext(*key_iter), ++ key_iter) {
// do something
}