【发布时间】:2019-06-06 12:45:24
【问题描述】:
作为一个例子,我已经向 DB 添加了几个键,就像,
<1 + 2>
<1 + 3>
<2 + 1>
<2 + 4>
<3 + 2>
首先,Seek() 到 ,然后 Next() 到
之后,我想跳过键 和 (其前缀都是 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
}
【问题讨论】: