小编Azh*_*lla的帖子

从不可排序的向量中删除重复项

我正在寻找一种从矢量中删除重复项的方法(让我们称之为theGreatVector:D).我不能使用std :: sort后跟std :: unique,因为无法对对象进行排序.

vector<Item*>theGreatVector 包含一些(smallVectors)

我有一个==的重载因为vector<Item*>我可以使用它

我能用O(n²)创建东西,但我需要时间效率(theGreatVector.size()可能是10⁵或10⁶)

现在我得到的是类似的东西(只有当smallOne不在其中时才填充我的向量):

for(i=0;i<size;i++)
{
  vector<Item*>smallOne = FindFacets(i)
  if(smallOne doesnt belong to GreatOne) // this line already in O(n) :/
  {
     theGreatOne.push_back(smallOne);
  }
}
Run Code Online (Sandbox Code Playgroud)

如果有一种方法可以做到这一点,即使在nlog(n)+ n或任何低于n²的东西,那就太好了!

非常感谢

AZH

c++ duplicates stdvector

5
推荐指数
1
解决办法
247
查看次数

标签 统计

c++ ×1

duplicates ×1

stdvector ×1