Question

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

Was it helpful?

Solution

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top