| 161 | } |
| 162 | |
| 163 | void MergingIterator::FindLargest() { |
| 164 | IteratorWrapper* largest = nullptr; |
| 165 | for (int i = n_ - 1; i >= 0; i--) { |
| 166 | IteratorWrapper* child = &children_[i]; |
| 167 | if (child->Valid()) { |
| 168 | if (largest == nullptr) { |
| 169 | largest = child; |
| 170 | } else if (comparator_->Compare(child->key(), largest->key()) > 0) { |
| 171 | largest = child; |
| 172 | } |
| 173 | } |
| 174 | } |
| 175 | current_ = largest; |
| 176 | } |
| 177 | } // namespace |
| 178 | |
| 179 | Iterator* NewMergingIterator(const Comparator* comparator, Iterator** children, |