1

How to copy last k items from std::multiset in reversed order to std::vector as fast as possible?

Johnas
  • 1,193
  • 2
  • 11
  • 22

1 Answers1

7

If you use the non-standard copy_n (you can easily roll your own), you can just do this:

std::copy_n(your_multiset.rbegin(), k, std::back_inserter(your_vector));

copy_n is part of C++1x, so there this solution is fully standard. If you want speed, it might be faster to reserve space in the vector in advance to save reallocations.

Community
  • 1
  • 1
Björn Pollex
  • 72,744
  • 28
  • 189
  • 274