Как максимально быстро скопировать последние k элементов из std::multiset в обратном порядке в std::vector?
Мультимножество в вектор, C++
Ответы (1)
Если вы используете нестандартный copy_n
(вы можете легко свернуть самостоятельно), вы можете просто сделать это:
std::copy_n(your_multiset.rbegin(), k, std::back_inserter(your_vector));
copy_n
является частью C++1x, так что это решение полностью стандартно. Если вам нужна скорость, может быть быстрее зарезервировать место в векторе заранее, чтобы сэкономить перераспределение.
person
Björn Pollex
schedule
04.05.2011