| 146 | }; |
| 147 | |
| 148 | void MergingIterator::FindSmallest() { |
| 149 | IteratorWrapper* smallest = nullptr; |
| 150 | for (int i = 0; i < n_; i++) { |
| 151 | IteratorWrapper* child = &children_[i]; |
| 152 | if (child->Valid()) { |
| 153 | if (smallest == nullptr) { |
| 154 | smallest = child; |
| 155 | } else if (comparator_->Compare(child->key(), smallest->key()) < 0) { |
| 156 | smallest = child; |
| 157 | } |
| 158 | } |
| 159 | } |
| 160 | current_ = smallest; |
| 161 | } |
| 162 | |
| 163 | void MergingIterator::FindLargest() { |
| 164 | IteratorWrapper* largest = nullptr; |