wismerhill__
Messages postés88Date d'inscriptionmercredi 1 juin 2005StatutMembreDernière intervention26 juillet 2007
-
31 juil. 2006 à 10:46
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 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é ...
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 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)