C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Question sur std::map operateur [ ] et methode size.

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French)
View previous topic :: View next topic  
Author Message
Bastien
Guest





PostPosted: Sun May 02, 2004 7:55 am    Post subject: Question sur std::map operateur [ ] et methode size. Reply with quote



Bonjour a tous,

Voila je me pose une question a laquelle je n'ai pas trouve de
reponse,
Soit le programme suivant :

#include <map>
#include <iostream>

int main ()
{
std::map <int, int> MaMap;
MaMap[1] = MaMap.size ();
std::cout << "La valeur de MaMap[1] est : " << MaMap[1] << std::endl;
return 0;
}

L'execution de ce programme compile avec gcc me donne 1, avec le
compilateur de visual c++, l'execution donne la valeur 0. Est ce que
le comportement de l'instruction MaMap[1] = MaMap.size (); est
determine ?

Bon dimanche.
PS : dsl, pas d'accents.
Back to top
Michel Michaud
Guest





PostPosted: Sun May 02, 2004 2:41 pm    Post subject: Re: Question sur std::map operateur [ ] et methode size. Reply with quote



Dans news:4ba0ee5c.0405012355.6cf38617 (AT) posting (DOT) google.com,
Bastien <bastien.armand (AT) wanadoo (DOT) fr> a écrit :
Quote:
int main ()
{
std::map <int, int> MaMap;
MaMap[1] = MaMap.size ();
std::cout << "La valeur de MaMap[1] est : " << MaMap[1]
std::endl; return 0;
}

L'execution de ce programme compile avec gcc me donne 1, avec le
compilateur de visual c++, l'execution donne la valeur 0. Est ce que
le comportement de l'instruction MaMap[1] = MaMap.size (); est
determine ?

Je crois que non. L'opérateur [] ajoute une donnée, alors comme le
compilateur peut évaluer la partie de gauche ou la partie de
droite en premier, on peut avoir les deux résultats différents.
Si tu as besoin de faire ça vraiment (?), tu peux utiliser insert
directement et mettre ce que tu veux (size() ou size() + 1).

--
Michel Michaud [email]mm (AT) gdzid (DOT) com[/email]
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/



Back to top
Bastien
Guest





PostPosted: Mon May 03, 2004 7:30 am    Post subject: Re: Question sur std::map operateur [ ] et methode size. Reply with quote



Merci pour la reponse.

En fait j'ai fait un exemple d'une ligne de code (qui associe a un
texte un nombre, les nombres associes devant se suivre) qui m'a pose
probleme pour un portage vers Linux. Il me semblait bien que cette
instruction risquait de ne pas s'executer de la meme maniere suivant
la compilation, voir meme les options d'optimisation.

PS : Je tiens a m'excuser pour le double post, je ne suis pas tres
familier avec les groupes de discussion...
Back to top
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.