【发布时间】:2021-05-14 15:18:29
【问题描述】:
如何从向量中删除重复元素但从前面开始?
所以
2 3 4 5 2 5 将变为 3 4 2 5
1 5 3 1 将变为 5 3 1
我希望解决方案易于阅读,如果它也具有良好的性能,那就太好了。
【问题讨论】:
-
您的意思是最容易编码,还是担心运行时效率?
-
@AdrianMole 两者都有,但更容易阅读是首选
-
好的。 “最容易阅读”而不是“最容易写入”意味着某种程度的优雅。想...
-
只需采用现有的算法之一,以通常的方式进行操作,然后反转所有内容:从头到尾迭代,而不是从头到尾迭代,然后删除剩余位在向量的开头,而不是向量的结尾,通过
erase() 处理剩余的位。任务完成。 -
@TedLyngmo 看来您是基于意见关闭的。如果是这样,我已经稍微编辑了这个问题,只是一个“操作方法”,我认为现在可以打开了。
标签: c++ algorithm vector iterator erase-remove-idiom