I have a very large std::vector of std::vectors containing a fixed number of unsigned integers.
All vectors of uints are sorted ascending.
My current way to eliminate duplicate vectors is
unsigned int i = 0;
while ( i < new_combs.size() )
{
unsigned int j = i + 1;
while ( j < new_combs.size() )
{
unsigned int k = 0;
while ( k < new_combs.at(i).size() && new_combs.at(i).at(k) == new_combs.at(j).at(k) )
++k;
if ( k == new_combs.at(j).size() )
new_combs.erase(new_combs.begin() + j);
else
++j;
}
++i;
}
here, new_combs is a vector containing vectors as mentioned above.
Is there a more efficient way to eliminate duplicates if the vector of vectors is unsorted?