如何解决如何使向量的元素唯一?(删除不相邻的重复项)?
开发过程中遇到如何使向量的元素唯一?(删除不相邻的重复项)的问题如何解决?下面主要结合日常开发的经验,给出你关于如何使向量的元素唯一?(删除不相邻的重复项)的解决方法建议,希望对你解决如何使向量的元素唯一?(删除不相邻的重复项)有所启发或帮助;问题描述
我有一个包含很少非相邻重复项的向量.
举一个简单的例子,考虑:
2 1 6 1 4 6 2 1 1
我试图通过删除不相邻的重复项并保持元素的顺序来使这个 vector 独一无二.
结果是:
2 1 6 4
我尝试的解决方案是:
- 插入 std::set 但这种方法的问题是它会扰乱元素的顺序.
- 使用 std::sort 和 std::unique 的组合.但同样的顺序问题.
手动消除重复:
- Inserting into a std::set but the problem with this approach is that it will disturb the order of elements.
- Use the combination of std::sort and std::unique. But again same order problem.
Manual duplicate elimination:
Define a temporary vector TempVector. for (each element in a vector) { if (the element does not exists in TempVector) { add to TempVector; } } swap orginial vector with TempVector.
我的问题是:
是否有任何 STL 算法可以从向量中删除不相邻的重复项?它的复杂程度如何?
尚未找到解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)