Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1084 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Conteneur associatif non ordonné

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Conteneur associatif non ordonné

n°2013631
Riot
Buy me a riot
Posté le 02-08-2010 à 15:35:31  profilanswer
 

Hello,
 
Je cherche dans la bibliothèque standard un conteneur associatif (paires de valeurs) qui n'ordonne pas comme map.
Ce que je veux c'est insérer mes paires dans un ordre, et que l'ordre reste inchangé lors du parcours du conteneur.
J'ai vu hash_map mais je ne vois pas la différence avec map...


---------------
Be the one with the flames.
mood
Publicité
Posté le 02-08-2010 à 15:35:31  profilanswer
 

n°2013633
Un Program​meur
Posté le 02-08-2010 à 15:42:10  profilanswer
 

Rien dans la norme (ni l'actuelle, dans celle en preparation).  Et j'ai pas le souvenir d'avoir vu qqch du genre dans boost.

 

La difference entre unordered_map et map, c'est que unordered_map n'ordonne pas et a des contraintes de complexite differentes (suggerant fortement qu'on veut une table de hachage et pas la variante d'arbre suggeree par les contraintes sur map).

 

Edit: hash_map vers unordered_map.  hash_map est une extension fournie par certaines implementation de la lib standard.  Comme ces extensions ont des interfaces differentes, le nom unordered_map a ete utilise pour la version standardisee pour eviter les conflits.

Message cité 1 fois
Message édité par Un Programmeur le 02-08-2010 à 15:50:59

---------------
The truth is rarely pure and never simple (Oscar Wilde)
n°2013638
Riot
Buy me a riot
Posté le 02-08-2010 à 15:51:45  profilanswer
 

Un Programmeur a écrit :

c'est que hash_map n'ordonne pas


C'est étonnant car quand je fais :
 
hash_map< string, int > foo;
foo[ "min" ] = 10;
foo[ "max" ] = 200;
 
hash_map< string, int >::iterator it = foo.begin()
for( ; it != foo.end(); ++it )
  cout << it->first << endl;
 
Il m'affiche :
max
min


---------------
Be the one with the flames.
n°2013639
Riot
Buy me a riot
Posté le 02-08-2010 à 15:52:01  profilanswer
 

Ah le fourbe ! :D


---------------
Be the one with the flames.
n°2013652
bjone
Insert booze to continue
Posté le 02-08-2010 à 15:59:55  profilanswer
 

Si tu veux conserver l'ordre d'insertion et avoir un lookup à la map/hash_map, tu as un truc dans boost:
 
http://www.boost.org/doc/libs/1_43 [...] asics.html
 

n°2013661
Riot
Buy me a riot
Posté le 02-08-2010 à 16:05:19  profilanswer
 

Merci à vous :jap:


---------------
Be the one with the flames.
n°2013688
bjone
Insert booze to continue
Posté le 02-08-2010 à 17:19:56  profilanswer
 

Sinon rien ne t'empêche le faire à la mano un vector/list et un map/unordered_map, mais bon y'a des pièges auquel il faut penser :D

n°2013791
Riot
Buy me a riot
Posté le 03-08-2010 à 08:45:52  profilanswer
 

C'est ce que j'ai fait au final, car la situation n'est pas aussi simple que ce que j'ai exposé dans mon 1er post.


---------------
Be the one with the flames.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Conteneur associatif non ordonné

 

Sujets relatifs
pointeurs dans un conteneur - comment éviter leur destruction ?tableau associatif + HashMap
Remplir un tableau associatif vide au départ (et puis l'afficher)Quel conteneur pour mon problème ?
Perl - Tableau associatif Hashcoins arrondis sur conteneur centré auto
[CSS] : Plusieurs Div dans un Div conteneurOnglets qui s'adaptent à la largeur du conteneur
Conteneur de self-reference [resolu]Faire sortir une infobulle du cadre de son conteneur ?
Plus de sujets relatifs à : Conteneur associatif non ordonné


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR