我正在寻找一种从矢量中删除重复项的方法(让我们称之为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