[RESOLU] initialisation de maps

initialisation de maps [RESOLU] - C++ - Programmation

Marsh Posté le 26-05-2006 à 08:50:05    

Bonjour,
j'ai une classe qui a comme argument une map statique.
Comment dois-je l'initialiser ?
dans le .cc ou le .h ?
j'ai essayé :
class::nomMap[valeur]=blalba
Mais ça ne marche pas.
 
J'aimerais aussi savoir comme accéder au premier champ de la map à partir du second.
Par exemple :
map <string,int>  MAP;  
pour accéder au int il suffit de faire :
MAP ["chaîne"]
mais comment faire pour accéder à la chaine à partir du int ?


Message édité par oc_alex86 le 27-05-2006 à 09:20:45
Reply

Marsh Posté le 26-05-2006 à 08:50:05   

Reply

Marsh Posté le 26-05-2006 à 09:19:21    

tu la definie dans le .cc avec le constructeur qui va (tu peux l'initialisée a partir d'une table), pas d'instructions
 

Code :
  1. // .h
  2. class foo
  3. {
  4. typedef std::map<std::string, int> map_si;
  5. static map_si nomMap;
  6. };
  7. // .cc
  8. const foo::map_si::value_type nomMap_init[] = { foo::map_si::value_type("valeur", 3), ...};
  9. foo::map_si foo::nomMap(nomMap_init, nomMap_init + sizeof nomMap_init / sizeof *nomMap_init)

Reply

Marsh Posté le 26-05-2006 à 09:22:10    

1.tu peux tiliser pushback.
2. à ma connaissance, on ne peut pas, car map n'est pas bijectif. Tu as besoin d'une autre structure.


Message édité par el muchacho le 26-05-2006 à 09:23:29

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
Reply

Marsh Posté le 27-05-2006 à 07:12:15    

Merci pour vos réponses.
je n'ai pas très bien compris ta ligne 9 et 11. que veux-tu dire par value_type ? et à quoi sert la ligne 11 ?
 
Sinon, push_back ne marche pas car inexistant pour les map

Reply

Marsh Posté le 27-05-2006 à 09:14:37    

foo::map_si::value_type est ici un alias de std:: pair<std::string, int> (voir doc), ton code est plus modulable ainsi
 
la ligne 11 c'est la construction de ta map a partir du tableau declaré a la ligne 9 et grace au constructeur template <class InputIterator> map(InputIterator f, InputIterator l) (voir doc)
 
la doc quoi
http://www.sgi.com/tech/stl/Map.html


Message édité par skelter le 27-05-2006 à 09:14:53
Reply

Marsh Posté le 27-05-2006 à 09:20:27    

ok merci
Je ne connaissais pas la doc. Ca m'a l'air super

Reply

Marsh Posté le 27-05-2006 à 12:35:18    

Ouais voila. Tu fais pas comme moi en répondant nawak "de mémoire", tu lis le fuckin' manual. [:dawao]


---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
Reply

Marsh Posté le 28-05-2006 à 03:18:40    

Edit: Merci Skelter !


Message édité par kirua_sama le 29-11-2012 à 16:52:05
Reply

Marsh Posté le 29-05-2006 à 17:49:26    

c'est clair que pour faire de l'info il faut supporter l'anglais ^^

Reply

Sujets relatifs:

Leave a Replay

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