Comment faire pour extraire efficacement les valeurs uniques de la matrice?

J'aimerais extraire les valeurs uniques de mon (allouée dynamiquement) tableau. J'ai quelque chose comme ceci :

    [0]     0   int
    [1]     1   int
    [2]     2   int
    [3]     2   int
    [4]     2   int
    [5]     5   int
    [6]     6   int
    [7]     6   int
    [8]     8   int
    [9]     9   int
    [10]    10  int
    [11]    8   int
    [12]    12  int
    [13]    10  int
    [14]    14  int
    [15]    6   int
    [16]    2   int
    [17]    17  int
    [18]    10  int
    [19]    5   int
    [20]    5   int

Je voudrais avoir une matrice de taille 12 avec chaque enregistrement de la valeur unique de l'autre tableau.

Comment puis-je le faire ?

MODIFIER
J'ai oublié de mentionner que je ne peux pas utiliser des conteneurs STL (comme std::vector ou std::list)

Connaissez-vous le maximum et le minimum de vos valeurs dans le tableau alloué dynamiquement?
Je peux obtenir cette valeur oui. Mais dans quel but ?
Pouvez-vous utiliser les algorithmes de la STL?
Non, je ne le peuvent pas.
Je suppose que Jayantha la question est de savoir si les valeurs sont fixes et petits (par une définition de la petite)... probablement l'intention est que vous pouvez créer un tableau de N bool (ou utiliser une image bitmap), de marcher sur le tableau de O(N) marquant les éléments qui sont présents. Puis l'image se contenir l'ensemble des valeurs qui sont présents dans le tableau d'origine.

OriginalL'auteur Patryk | 2012-02-07