unique - une fonction qui comprime toutes les séquences d'éléments consécutifs identiques en une seule en temps linéaire.
En argument, on lui passe les limites du tableau, à l'intérieur desquelles il faut appliquer la compression.
Un itérateur est renvoyé à la nouvelle fin (non inclusive) du tableau. Vous devez être prudent avec les éléments après la nouvelle fin mais avant l'ancien, car ils auront une valeur indéfinie.
Vous pouvez en savoir plus dans la documentation.
Si vous utilisez cette fonction sur un vecteur, il est pratique de redimensionner en utilisant le résultat renvoyé (plus d'informations ci-dessous).
Exemples :
vecteur une = { 3, 3, 3, 2, 3, 3, 1, 1, 4, 5, 5 } ;
unique(a.begin(), a.end());
// un = [3, 2, 3, 1, 4, 5, ?, ?, ?, ?, ?]
// utiliser la fonction unique est pratique à faire
// tableau auxiliaire pour la compression des coordonnées
un = { 235, 10, 41, 10, 41, 41, 235, 500, 500 } ;
sort(a.begin(), a.end());
// un = [10, 10, 41, 41, 41, 235, 235, 500, 500]
a.resize(unique(a.begin(), a.end()) - a.begin());
// un = [10, 41, 235, 500]