tri croissant avec tableau d'indices
Bonjour,
j'ai un tableau contenant plusieurs valeurs. A ce tableau est associé un autre tableau d'indices. Exemple à l'instant initiale :
Code:
1 2 3
|
val = [0.6 0.9 0.2]
indices = [0 1 2] |
je désire obtenir ceci :
Code:
1 2 3
|
val = [0.2 0.6 0.9]
indices = [2 0 1] |
puis j'ai une nouvelle valeur, disons 0.5. Son indice sera donc 3. Je désire obtenir ceci
Code:
1 2 3
|
val = [0.2 0.5 0.6 0.9]
indices = [2 3 0 1] |
Si j'ai une autre valeur (disons encore 0.5) je désire
Code:
1 2 3
|
val = [0.2 0.5 0.5 0.6 0.9]
indices = [2 3 4 0 1] ou bien indices = [2 4 3 0 1] aucune importance |
Je suis très intéressé par les temps de calcul (donc insertion ici) !
J'ai vu que les std::set tenaient compte de l'ordre mais sans doublons.
Je pense partir sur une solution avec des listes chaînées (les std::list). Est-ce une bonne idée ? Y a-t-il une fonction de la STL qui pourrait me donner à quel endroit je dois insérer ma nouvelle valeur ? J'aimerais pouvoir utiliser les optimisation de la STL, sinon je ferais une boucle...
Merci de vos conseils