Мультимножество в вектор, C++

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


person Johnas    schedule 04.05.2011    source источник


Ответы (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