【发布时间】:2011-08-18 15:11:09
【问题描述】:
如何尽可能快地将 std::multiset 中的最后 k 个项目以相反的顺序复制到 std::vector?
【问题讨论】:
如何尽可能快地将 std::multiset 中的最后 k 个项目以相反的顺序复制到 std::vector?
【问题讨论】:
如果你使用非标准的copy_n(你可以轻松roll your own),你可以这样做:
std::copy_n(your_multiset.rbegin(), k, std::back_inserter(your_vector));
copy_n 是 C++1x 的一部分,所以这个解决方案是完全标准的。如果你想要速度,提前在向量中预留空间以节省重新分配可能会更快。
【讨论】: