J'ai un vecteur contenant quelques doublons non adjacents.
Prenons un exemple simple :
2 1 6 1 4 6 2 1 1
J'essaie de faire ce vector
unique en supprimant les doublons non adjacents et en conservant l'ordre des éléments.
Le résultat serait :
2 1 6 4
Les solutions que j'ai essayées sont les suivantes :
- Insertion dans un std::set mais le problème avec cette approche est qu'elle va perturber l'ordre des éléments.
- Utilisez la combinaison de std::sort et std::unique. Mais à nouveau, même problème d'ordre.
-
Élimination manuelle des doublons :
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.
Ma question est la suivante :
Existe-t-il un algorithme STL capable de supprimer les doublons non adjacents d'un vecteur ? Quelle est sa complexité ?