begin process at 2012 05 30 03:57:03
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

map


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

map

lundi 16 mai 2005 à 17:06:49 | map

vecchio56

Administrateur CodeS-SourceS
Bonjour,

J'ai une map<T1, T2> m. J'ajoute une clé de la manière suivante:

m[t1] = T2(...);
et tout de suite après j'ai besoin de récupérer l'objet que je viens de créer. Si je fais

m[t1] = T2(...);
m[t1].a = 0;

ca va impliquer deux recherches. Y a-t-il un autre moyen de faire ca?
lundi 16 mai 2005 à 17:17:42 | Re : map

vecchio56

Administrateur CodeS-SourceS
Pardon, je me suis embrouillé, c'est pas ca que je voulais faire. Je veux en fait la valeur de t1, par exemple:

map<string, int> m;
string s = "cle1";
m[s] = 1;

Et je voudrais avoir l'adresse de la chaine "cle1" qui est stocké dans map.
Suis-je obligé de faire une recherche pour le retrouver

lundi 16 mai 2005 à 22:30:13 | Re : map

Hylvenir

Salut,
Par curiosité,
à quoi pourrais te servir l'adresse de cette chaine ? (qui est la clef
et qu'il ne faut pas (trop) modifiée )


Ma participation à la saturation du net:
http://hylvenir.free.fr
lundi 16 mai 2005 à 23:19:35 | Re : map

vecchio56

Administrateur CodeS-SourceS
J'ai besoin d'afficher cette chaine par ailleurs, et je souhaite ne stocker cette chaine que dans la map (pourquoi la mettre à 2 endroits?). L'objet s que j'utilise pour la clé au départ est une variable locale.

J'ai essayé de faire comme ca:
map<string, int>::iterator i = m.lower_bound(s);
m.insert(i, 1);

mais le 2ème argument de insert ne convient pas


lundi 16 mai 2005 à 23:31:23 | Re : map

Hylvenir

Réponse acceptée !
pour le insert, il faut une value

m.insert( i, map< string, int >:: value( "cle1", 1 ) );
ou
m.insert( i, make_pair( "cle1", 1 ) );

sinon pourquoi pas juste find ?
map<string, int>::iterator i = m.find(s);
if ( i != m.end() )
    i->second = 1;   // i->first vaut s
else
    m.insert( make_pair( s, 1 ) );



Ma participation à la saturation du net:
http://hylvenir.free.fr
lundi 16 mai 2005 à 23:44:02 | Re : map

vecchio56

Administrateur CodeS-SourceS
Oui pour le moment j'utilise find, mais je me disais que c'était idiot de refaire une recherche, car puisque je viens d'ajouter une clé je pourrais savoir ou elle est exactement sans avoir à la rechercher. Si j'utilise insert, j'aurais un itérateur et je pourrais alors directement avoir i->first
lundi 16 mai 2005 à 23:45:46 | Re : map

vecchio56

Administrateur CodeS-SourceS
Je compile avec Visual C++ et
  map< string, int >:: value
doit être remplacé par
  map< string, int >:: value_type
mardi 17 mai 2005 à 08:29:22 | Re : map

Hylvenir

Réponse acceptée !
Oui, désolé c'est bien value_type.

Pour le insert,
si tu fais :
pos = m.insert( make_pair( "cle", 1 ) );

pos est une pair contenant un bool et un itérator où a été insérée
un truc du genre

pair< bool, map< string, int >::iterator > pos = m.insert( make_pair( "cle1", 1 ) );
if ( pos.first )
    pos.second->first; // contient cle1 en cas  de succès


Ma participation à la saturation du net:
http://hylvenir.free.fr
mardi 17 mai 2005 à 10:23:18 | Re : map

vecchio56

Administrateur CodeS-SourceS
Oui, je pense que cette méthode est plus directe. Merci


Cette discussion est classée dans : t1, t2, map


Répondre à ce message

Sujets en rapport avec ce message

manipulation tableau en c/c++ [ par asmv ] bonjoursvp un coup de mainen c/c++ est-il possible de copier 3 elements d'1 tableau dans 1 element d'1 autre tableausi oui comment faire ?exemple :si je m'arrache les cheveu avec mes tableau [ par slyiut ] bonjour je dois faire un exo qui est la fusion de 2 tableau triés dans un troisieme tableau.Je sais qu'il y a sur le net plein de solution mais ce que aide c++ [ par jekburn ] #include #include typedef struct{   int heure;   int minute;   int seconde;}TEMPS; TEMPS diff(TEMPS t1,TEMPS t2){   TEMPS t3; &n Diffence de date [ par keerigan ] Bonjour ,Je dois calculer une difference de date. A savoir j'ai une date t1 et une date t2 et je dois dire qu'entre ces 2 date il s'est ecoule x secon Concatener 2 tableuax triés [ par Strick9 ] Salut à tous, je bloque sur l'énoncé suivant.De l'aide serait plus que bienvenue.Ecrire une fonction qui permet d'insérer un tableau d'entier T2 dans strncat [ par Darkvlador ] lu !j'ai un problème concernant strncat voilà mon codechar *t1 = "hello";char *t2 = "12mo";char *t3;strncpy(t3, t1, 2);aprèsstrncat(t3, t2, 2);et la q creation automatique d'une matrice [ par nissan1 ] Bonjour a tous, Je travail sur mon sujet de stage et je suis bloquer depuis quelques jours car j'ai fait un programme qui contient une fonction qui p Instanciation JAVA (renommé et déplacé bar --> java) [ par baster200x ] bonjour tout le monde, j'ai un petit problème .... ben j'ai réalisé un programme de tel façon il prend un texte à partir d'un TextArea [ String text = c++ [ par noussa44 ] Bonjour, j'ai un code avec c++ mais il a des erreurs svp si quel qu'un peut m'aider et corriger ce code qui permet de calculer la distance entre des p c++ [ par noussa44 ] Salut tout le monde, j'ai besoin svp de vore aide sur un exercice que j'ai fait mais j'ai des erreurs, pour cela je me suis fait recours sur votre a


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,234 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales