 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Bastien Guest
|
Posted: Sun May 02, 2004 7:55 am Post subject: Question sur std::map operateur [ ] et methode size. |
|
|
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
|
Posted: Sun May 02, 2004 2:41 pm Post subject: Re: Question sur std::map operateur [ ] et methode size. |
|
|
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
|
Posted: Mon May 03, 2004 7:30 am Post subject: Re: Question sur std::map operateur [ ] et methode size. |
|
|
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 |
|
 |
|
|
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
|
|