相关疑难解决方法(0)

如何使向量元素独特?(删除不相邻的重复项)

我有一个包含很少非相邻重复项的向量.

举个简单的例子,考虑一下:

2 1 6 1 4 6 2 1 1
Run Code Online (Sandbox Code Playgroud)

我试图vector通过删除不相邻的重复项并保持元素的顺序来使这个独特.

结果将是:

2 1 6 4 
Run Code Online (Sandbox Code Playgroud)

我尝试的解决方案是:

  1. 插入std :: set但这种方法的问题是它会扰乱元素的顺序.
  2. 使用std :: sort和std :: unique的组合.但同样的订单问题.
  3. 手动重复消除:

        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.
    
    Run Code Online (Sandbox Code Playgroud)

我的问题是:

是否有任何STL算法可以从向量中删除不相邻的重复项?它的复杂性是什么?

c++ stl vector unique

34
推荐指数
4
解决办法
4万
查看次数

标签 统计

c++ ×1

stl ×1

unique ×1

vector ×1