Мультисет к вектору, C ++ - PullRequest
1 голос
/ 04 мая 2011

Как скопировать последние k элементов из std :: multiset в обратном порядке в std :: vector как можно быстрее?

1 Ответ

7 голосов
/ 04 мая 2011

Если вы используете нестандартный copy_n (вы можете легко бросить свой собственный ), вы можете просто сделать это:

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

copy_n является частью C ++ 1x, так что там это решение является полностью стандартным. Если вам нужна скорость, может быть быстрее заранее зарезервировать место в векторе, чтобы сохранить перераспределения.

...