为了账号安全,请及时绑定邮箱和手机立即绑定

什么是最有效的方法删除重复和排序的向量?

什么是最有效的方法删除重复和排序的向量?

C++
蝴蝶不菲 2019-06-28 15:41:58
什么是最有效的方法删除重复和排序的向量?我需要一个C+向量与潜在的许多元素,擦除重复,并排序。我现在有下面的代码,但是它不起作用。vec.erase(       std::unique(vec.begin(), vec.end()),       vec.end());std::sort(vec.begin(), vec.end());我怎么才能正确地做到这一点?另外,首先清除重复项(类似于上面的代码)还是先执行排序更快呢?如果我首先执行排序,它是否保证在之后保持排序?std::unique被处决了?或者还有另外一种(也许更有效)的方法来完成这一切?
查看完整描述

3 回答

?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

std::unique只有在重复元素是相邻的情况下才会删除:在向量按您的意愿工作之前,您必须先对其排序。

std::unique定义为稳定的,因此向量在运行UNIQUE之后仍将被排序。


查看完整回答
反对 回复 2019-06-28
  • 3 回答
  • 0 关注
  • 404 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信