| 290 | |
| 291 | template <class T, class Cmp> |
| 292 | std::vector<T> *TopN<T, Cmp>::ExtractUnsorted() { |
| 293 | auto out = new std::vector<T>; |
| 294 | out->swap(elements_); |
| 295 | if (state_ == HEAP_SORTED) { |
| 296 | // Remove the limit_+1'th element. |
| 297 | out->pop_back(); |
| 298 | } |
| 299 | return out; |
| 300 | } |
| 301 | |
| 302 | template <class T, class Cmp> |
| 303 | std::vector<T> *TopN<T, Cmp>::ExtractNondestructive() const { |