multimap ou map de vecteur??

multimap ou map de vecteur?? - C++ - Programmation

Marsh Posté le 12-08-2003 à 01:16:09    

Salut,
 
alors voilà ma question du jour:
 
qu'est-il préférable d'utiliser:
 

Code :
  1. typedef map<string,vector<int> > toto;
  2. toto foo;


 
et on récupère les données grâce à:
 

Code :
  1. toto::iterator it = foo.find(string);
  2. vector<int> & vect = it->second;


 
ou bien
 

Code :
  1. typedef multimap<string,int> toto;
  2. toto foo;


 
et on récupère les données grâce à:
 

Code :
  1. pair<toto::iterator,toto::iterator> Paire = foo.equal_range(string);
  2. for (toto::iterator it = Paire.first; it != Paire.second; ++it)
  3. .....


 
Qu'en est-il question perfs, mémoire...
 
Parce que là j'hésite...
 
Si c'est comparable, je penche plutôt pour le multimap, avec le equal_range...


---------------
Another .Net Blog
Reply

Marsh Posté le 12-08-2003 à 01:16:09   

Reply

Marsh Posté le 12-08-2003 à 09:06:11    

Y a des risques que le multimap soit + lourd en mem... Mais bon je suis zumble. Taz va te dire ça...

Reply

Marsh Posté le 12-08-2003 à 09:23:43    

ben c'est pas meme chose du tout. le cout mémoire est pas trop important. si tu as besoin d'un conteneur associatif avec des clefs multipes, alors oui, multimap. sinon pas la peine d'émuler ça avec une map et des vector, c'est pure perte de temps.
 
equal_range est parfait.
 
multimap  :)

Reply

Marsh Posté le 12-08-2003 à 10:18:18    

ben en voilà une réponse qui fait plaisir ;)


---------------
Another .Net Blog
Reply

Marsh Posté le 12-08-2003 à 14:09:40    

tant qu'on y est c quoi la difference entre multimap et multiset ?????
 
j'ai cru comprendre quavec multiset la clé est la valeur elle meme mais jai pas trop capté qd meme

Reply

Marsh Posté le 12-08-2003 à 15:24:20    

un set peut etre vu comme un conteneur associatif dont la clef est aussi la valeur associée. voilà. c'est un ensemble.

Reply

Marsh Posté le 12-08-2003 à 19:15:17    

...et donc un multiset c'est un set qui autorise la redondance. C'est plus vraiment un "ensemble" au sens ontologique du terme, mais ça marche c'est l'essentiel.


---------------
NOUVEAU! Le guide de l'édition en version ebook : http://marcautret.free.fr/autret/150q-ebook/
Reply

Marsh Posté le 12-08-2003 à 19:42:45    

ben c'est un multi-ensemble, ou un un sac (bag comme on dit)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed