Если вы используете нестандартный copy_n
(вы можете легко бросить свой собственный ), вы можете просто сделать это:
std::copy_n(your_multiset.rbegin(), k, std::back_inserter(your_vector));
copy_n
является частью C ++ 1x, так что там это решение является полностью стандартным. Если вам нужна скорость, может быть быстрее заранее зарезервировать место в векторе, чтобы сохранить перераспределения.