Table de correspondance

Résolu
wismerhill__ Messages postés 88 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 26 juillet 2007 - 31 juil. 2006 à 10:46
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 - 1 août 2006 à 18:16
Salut, j'ai un problème simple que j'aimerais resoudre un peu joliment...

Je dispose de trois vecteur de n elements

vect 1 -> vecteur de std::string
vect 2 -> vecteur de std::string
vect 3 -> vecteur de int

en fait au dessus j'ai un objet qui possede pour attribut un triplet (a,b,c) sachant qu'à a correspond un unique b et un unique c (il y a bijection entre les trois vecteurs)
je voudrais savoir commant pouvoir en rentrant un seul element d'un des trois vecteurs obtenir les deux autres des deux autres vecteurs qui lui correspondent...

voila .. cela sans if elseif etc ... on m'a parlé de table de correspondance mais je n'ai pas trouvé ...

merci :)

wis : in tartiflette I trust (like the others)

1 réponse

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
1 août 2006 à 18:16
J'utiliserais une map pour faire ca:
map<vector, pair<vector<string>, vector<string> > >;

J'ai mis le vector comme clé car les entiers sont plus rapides a comparer que les chaines (si les chaines sont de même taille). En général mets comme clé le type d'élément le plus rapide a comparer.
De plus la recherche de la paire connaissant la clé se fait en log2(n)

_____________________________________
Un éditeur de ressources gratuit pour Windows
-2
Rejoignez-nous