如何以最快的顺序将std :: multiset中的最后k个项目以相反的顺序复制到std :: vector?
答案 0 :(得分:7)
如果您使用非标准copy_n
(您可以轻松roll your own),则可以执行以下操作:
std::copy_n(your_multiset.rbegin(), k, std::back_inserter(your_vector));
copy_n
是C ++ 1x的一部分,所以这个解决方案是完全标准的。如果你想要速度,可以更快地预先在矢量中保留空间以节省重新分配。