Como fazer elementos de vetor únicos? (remover duplicatas não adjacentes)
Eu tenho um vetor contendo poucas duplicatas não adjacentes.
Como um exemplo simples, considere:
2 1 6 1 4 6 2 1 1
Eu estou tentando fazer issovector
exclusivo removendo as duplicatas não adjacentes e mantendo a ordem dos elementos.
Resultado seria:
2 1 6 4
As soluções que eu tentei são:
Inserindo em um std :: set, mas o problema com esta abordagem é que isso irá perturbar a ordem dos elementos.Use a combinação de std :: sort e std :: unique. Mas novamente o mesmo problema de ordem.Eliminação duplicada manual:
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.
Minha pergunta é:
Existe algum algoritmo STL que possa remover as duplicatas não adjacentes do vetor? qual é a sua complexidade?