pour te faire une idée, tu peux faire le test toi même : dans
une boucle fais 100000 printf puis 100000 cout, avec mesure du
temps (voir suivant ton os) , mais AMA ce n'est pas
significatif.
pour te faire une idée, tu peux faire le test toi même : dans
une boucle fais 100000 printf puis 100000 cout, avec mesure du
temps (voir suivant ton os) , mais AMA ce n'est pas
significatif.
pour te faire une idée, tu peux faire le test toi même : dans
une boucle fais 100000 printf puis 100000 cout, avec mesure du
temps (voir suivant ton os) , mais AMA ce n'est pas
significatif.
pour te faire une idée, tu peux faire le test toi même : dans une boucle
fais 100000 printf puis 100000 cout, avec mesure du temps (voir suivant ton
os) , mais AMA ce n'est pas significatif.
Lorsque tu fais :
pour te faire une idée, tu peux faire le test toi même : dans une boucle
fais 100000 printf puis 100000 cout, avec mesure du temps (voir suivant ton
os) , mais AMA ce n'est pas significatif.
Lorsque tu fais :
pour te faire une idée, tu peux faire le test toi même : dans une boucle
fais 100000 printf puis 100000 cout, avec mesure du temps (voir suivant ton
os) , mais AMA ce n'est pas significatif.
Lorsque tu fais :
pour te faire une idée, tu peux faire le test toi même : dans une boucle
fais 100000 printf puis 100000 cout, avec mesure du temps (voir suivant ton
os) , mais AMA ce n'est pas significatif.
Lorsque tu fais :
printf("%s blablabla %d %d %s", s1,i1,i2,s2);
ton programme doit parser la chaine de format à l'execution
alors que dans le cas du cout le probleme est reglé des la compilation.
cout << s1 << " blablabla" << i1 << " " << i2 << " " << s2;
le printf pose d'autre problemes:
si tu fait
int i1 = 0;
printf ("%s",i1);
ca compile mais c'est sur que ça va planter à l'execution.
avec cout << i1; pas de probleme.
autre avantage lors de la modification de code:
cout << age_du_capitaine ;
marche quelque soit le type de age_du_capitaine int,double, string
ou même ta propre class du moment que tu a redefini la fonction qui va bien.
encore un piege :
char * s ;
...
printf(s);
en fait il faudrait faire printf("%s",s)
car pour peu que ta string s contienne un "%" tu risque d'avoir des
phenemones bizarres.
de plus ecrir printf(s) oblige le programme à parser s à la recherche de %
(donc moins performant).
En conclusion, je te conseille fortement de bannir le printf ainsi que les
char * d'ailleurs qui sont des reliques du C.
Tout celà me semble frappé au coin du bon sens. Je me permets une
pour te faire une idée, tu peux faire le test toi même : dans une boucle
fais 100000 printf puis 100000 cout, avec mesure du temps (voir suivant ton
os) , mais AMA ce n'est pas significatif.
Lorsque tu fais :
printf("%s blablabla %d %d %s", s1,i1,i2,s2);
ton programme doit parser la chaine de format à l'execution
alors que dans le cas du cout le probleme est reglé des la compilation.
cout << s1 << " blablabla" << i1 << " " << i2 << " " << s2;
le printf pose d'autre problemes:
si tu fait
int i1 = 0;
printf ("%s",i1);
ca compile mais c'est sur que ça va planter à l'execution.
avec cout << i1; pas de probleme.
autre avantage lors de la modification de code:
cout << age_du_capitaine ;
marche quelque soit le type de age_du_capitaine int,double, string
ou même ta propre class du moment que tu a redefini la fonction qui va bien.
encore un piege :
char * s ;
...
printf(s);
en fait il faudrait faire printf("%s",s)
car pour peu que ta string s contienne un "%" tu risque d'avoir des
phenemones bizarres.
de plus ecrir printf(s) oblige le programme à parser s à la recherche de %
(donc moins performant).
En conclusion, je te conseille fortement de bannir le printf ainsi que les
char * d'ailleurs qui sont des reliques du C.
Tout celà me semble frappé au coin du bon sens. Je me permets une
pour te faire une idée, tu peux faire le test toi même : dans une boucle
fais 100000 printf puis 100000 cout, avec mesure du temps (voir suivant ton
os) , mais AMA ce n'est pas significatif.
Lorsque tu fais :
printf("%s blablabla %d %d %s", s1,i1,i2,s2);
ton programme doit parser la chaine de format à l'execution
alors que dans le cas du cout le probleme est reglé des la compilation.
cout << s1 << " blablabla" << i1 << " " << i2 << " " << s2;
le printf pose d'autre problemes:
si tu fait
int i1 = 0;
printf ("%s",i1);
ca compile mais c'est sur que ça va planter à l'execution.
avec cout << i1; pas de probleme.
autre avantage lors de la modification de code:
cout << age_du_capitaine ;
marche quelque soit le type de age_du_capitaine int,double, string
ou même ta propre class du moment que tu a redefini la fonction qui va bien.
encore un piege :
char * s ;
...
printf(s);
en fait il faudrait faire printf("%s",s)
car pour peu que ta string s contienne un "%" tu risque d'avoir des
phenemones bizarres.
de plus ecrir printf(s) oblige le programme à parser s à la recherche de %
(donc moins performant).
En conclusion, je te conseille fortement de bannir le printf ainsi que les
char * d'ailleurs qui sont des reliques du C.
Tout celà me semble frappé au coin du bon sens. Je me permets une
pour te faire une idée, tu peux faire le test toi même : dans une
boucle fais 100000 printf puis 100000 cout, avec mesure du temps
(voir suivant ton os) , mais AMA ce n'est pas significatif.
Lorsque tu fais :
printf("%s blablabla %d %d %s", s1,i1,i2,s2);
ton programme doit parser la chaine de format à l'execution
alors que dans le cas du cout le probleme est reglé des la compilation.
cout << s1 << " blablabla" << i1 << " " << i2 << " " << s2;
le printf pose d'autre problemes:
si tu fait
int i1 = 0;
printf ("%s",i1);
ca compile mais c'est sur que ça va planter à l'execution.
avec cout << i1; pas de probleme.
autre avantage lors de la modification de code:
cout << age_du_capitaine ;
marche quelque soit le type de age_du_capitaine int,double, string
ou même ta propre class du moment que tu a redefini la fonction qui va
bien.
encore un piege :
char * s ;
...
printf(s);
en fait il faudrait faire printf("%s",s)
car pour peu que ta string s contienne un "%" tu risque d'avoir des
phenemones bizarres.
de plus ecrir printf(s) oblige le programme à parser s à la recherche
de % (donc moins performant).
En conclusion, je te conseille fortement de bannir le printf ainsi que
les char * d'ailleurs qui sont des reliques du C.
Tout celà me semble frappé au coin du bon sens. Je me permets une
question supplémentaire : quelqu'un qui ajourd'hui apprend C++ et qui
resterait dans une optique de code neuf (voeux pieux) peut-il faire
l'économie de l'apprentissage de printf() et consorts ? En particulier
pour son avatar sprintf(), cette fonction et sa chaîne de format
reste-t-elle indispensable ?
On peut eviter le sprintf avec un stringstream qui fonctionne comme
pour te faire une idée, tu peux faire le test toi même : dans une
boucle fais 100000 printf puis 100000 cout, avec mesure du temps
(voir suivant ton os) , mais AMA ce n'est pas significatif.
Lorsque tu fais :
printf("%s blablabla %d %d %s", s1,i1,i2,s2);
ton programme doit parser la chaine de format à l'execution
alors que dans le cas du cout le probleme est reglé des la compilation.
cout << s1 << " blablabla" << i1 << " " << i2 << " " << s2;
le printf pose d'autre problemes:
si tu fait
int i1 = 0;
printf ("%s",i1);
ca compile mais c'est sur que ça va planter à l'execution.
avec cout << i1; pas de probleme.
autre avantage lors de la modification de code:
cout << age_du_capitaine ;
marche quelque soit le type de age_du_capitaine int,double, string
ou même ta propre class du moment que tu a redefini la fonction qui va
bien.
encore un piege :
char * s ;
...
printf(s);
en fait il faudrait faire printf("%s",s)
car pour peu que ta string s contienne un "%" tu risque d'avoir des
phenemones bizarres.
de plus ecrir printf(s) oblige le programme à parser s à la recherche
de % (donc moins performant).
En conclusion, je te conseille fortement de bannir le printf ainsi que
les char * d'ailleurs qui sont des reliques du C.
Tout celà me semble frappé au coin du bon sens. Je me permets une
question supplémentaire : quelqu'un qui ajourd'hui apprend C++ et qui
resterait dans une optique de code neuf (voeux pieux) peut-il faire
l'économie de l'apprentissage de printf() et consorts ? En particulier
pour son avatar sprintf(), cette fonction et sa chaîne de format
reste-t-elle indispensable ?
On peut eviter le sprintf avec un stringstream qui fonctionne comme
pour te faire une idée, tu peux faire le test toi même : dans une
boucle fais 100000 printf puis 100000 cout, avec mesure du temps
(voir suivant ton os) , mais AMA ce n'est pas significatif.
Lorsque tu fais :
printf("%s blablabla %d %d %s", s1,i1,i2,s2);
ton programme doit parser la chaine de format à l'execution
alors que dans le cas du cout le probleme est reglé des la compilation.
cout << s1 << " blablabla" << i1 << " " << i2 << " " << s2;
le printf pose d'autre problemes:
si tu fait
int i1 = 0;
printf ("%s",i1);
ca compile mais c'est sur que ça va planter à l'execution.
avec cout << i1; pas de probleme.
autre avantage lors de la modification de code:
cout << age_du_capitaine ;
marche quelque soit le type de age_du_capitaine int,double, string
ou même ta propre class du moment que tu a redefini la fonction qui va
bien.
encore un piege :
char * s ;
...
printf(s);
en fait il faudrait faire printf("%s",s)
car pour peu que ta string s contienne un "%" tu risque d'avoir des
phenemones bizarres.
de plus ecrir printf(s) oblige le programme à parser s à la recherche
de % (donc moins performant).
En conclusion, je te conseille fortement de bannir le printf ainsi que
les char * d'ailleurs qui sont des reliques du C.
Tout celà me semble frappé au coin du bon sens. Je me permets une
question supplémentaire : quelqu'un qui ajourd'hui apprend C++ et qui
resterait dans une optique de code neuf (voeux pieux) peut-il faire
l'économie de l'apprentissage de printf() et consorts ? En particulier
pour son avatar sprintf(), cette fonction et sa chaîne de format
reste-t-elle indispensable ?
On peut eviter le sprintf avec un stringstream qui fonctionne comme
Bonjour à tous,
J'aurais une question très simple. Quel est e plus rapide entre un
affichage avec cout ou avec printf. En lisant l'ouvrage "La qualité en
C++" de Philippe Prados j'ai l'impression que l'utilisation de cout
devrait donner un résultat plus rapide car optimisé. Néanmoins,
certaines lectures faites sur le Net indique que printf est plus rapide.
Qui croire ?
Merçi pour vos réponses.
Bonjour à tous,
J'aurais une question très simple. Quel est e plus rapide entre un
affichage avec cout ou avec printf. En lisant l'ouvrage "La qualité en
C++" de Philippe Prados j'ai l'impression que l'utilisation de cout
devrait donner un résultat plus rapide car optimisé. Néanmoins,
certaines lectures faites sur le Net indique que printf est plus rapide.
Qui croire ?
Merçi pour vos réponses.
Bonjour à tous,
J'aurais une question très simple. Quel est e plus rapide entre un
affichage avec cout ou avec printf. En lisant l'ouvrage "La qualité en
C++" de Philippe Prados j'ai l'impression que l'utilisation de cout
devrait donner un résultat plus rapide car optimisé. Néanmoins,
certaines lectures faites sur le Net indique que printf est plus rapide.
Qui croire ?
Merçi pour vos réponses.
En conclusion, je te conseille fortement de bannir le printf
ainsi que les char * d'ailleurs qui sont des reliques du C.
Tout celà me semble frappé au coin du bon sens. Je me permets
une question supplémentaire : quelqu'un qui ajourd'hui apprend
C++ et qui resterait dans une optique de code neuf (voeux
pieux) peut-il faire l'économie de l'apprentissage de printf()
et consorts ?
En particulier pour son avatar sprintf(), cette fonction et sa
chaîne de format reste-t-elle indispensable ?
En conclusion, je te conseille fortement de bannir le printf
ainsi que les char * d'ailleurs qui sont des reliques du C.
Tout celà me semble frappé au coin du bon sens. Je me permets
une question supplémentaire : quelqu'un qui ajourd'hui apprend
C++ et qui resterait dans une optique de code neuf (voeux
pieux) peut-il faire l'économie de l'apprentissage de printf()
et consorts ?
En particulier pour son avatar sprintf(), cette fonction et sa
chaîne de format reste-t-elle indispensable ?
En conclusion, je te conseille fortement de bannir le printf
ainsi que les char * d'ailleurs qui sont des reliques du C.
Tout celà me semble frappé au coin du bon sens. Je me permets
une question supplémentaire : quelqu'un qui ajourd'hui apprend
C++ et qui resterait dans une optique de code neuf (voeux
pieux) peut-il faire l'économie de l'apprentissage de printf()
et consorts ?
En particulier pour son avatar sprintf(), cette fonction et sa
chaîne de format reste-t-elle indispensable ?
J'aurais une question très simple. Quel est e plus rapide
entre un affichage avec cout ou avec printf. En lisant
l'ouvrage "La qualité en C++" de Philippe Prados j'ai
l'impression que l'utilisation de cout devrait donner un
résultat plus rapide car optimisé. Néanmoins, certaines
lectures faites sur le Net indique que printf est plus
rapide.
Qui croire ?
Dernière remarque:
lors d'un cout ou d'un printf le fait d'ecrire reellement sur
la console (ou dans un fichier avec printf ou ofstream << )
prend beaucoup plus de temps que de formatter ce qu'on va
ecrire.
Donc les differences de performances entres les 2 methodes
doivent êtres minimes. Par contre entre un sprintf et un <<
dans un stringstream les differences de performances sont plus
flagrantes (en faveur du sprintf).
Reste à voir si le gain en performance vaut vraiment le coup
par rapport au gain en facilité (et donc en temps) de codage.
J'aurais une question très simple. Quel est e plus rapide
entre un affichage avec cout ou avec printf. En lisant
l'ouvrage "La qualité en C++" de Philippe Prados j'ai
l'impression que l'utilisation de cout devrait donner un
résultat plus rapide car optimisé. Néanmoins, certaines
lectures faites sur le Net indique que printf est plus
rapide.
Qui croire ?
Dernière remarque:
lors d'un cout ou d'un printf le fait d'ecrire reellement sur
la console (ou dans un fichier avec printf ou ofstream << )
prend beaucoup plus de temps que de formatter ce qu'on va
ecrire.
Donc les differences de performances entres les 2 methodes
doivent êtres minimes. Par contre entre un sprintf et un <<
dans un stringstream les differences de performances sont plus
flagrantes (en faveur du sprintf).
Reste à voir si le gain en performance vaut vraiment le coup
par rapport au gain en facilité (et donc en temps) de codage.
J'aurais une question très simple. Quel est e plus rapide
entre un affichage avec cout ou avec printf. En lisant
l'ouvrage "La qualité en C++" de Philippe Prados j'ai
l'impression que l'utilisation de cout devrait donner un
résultat plus rapide car optimisé. Néanmoins, certaines
lectures faites sur le Net indique que printf est plus
rapide.
Qui croire ?
Dernière remarque:
lors d'un cout ou d'un printf le fait d'ecrire reellement sur
la console (ou dans un fichier avec printf ou ofstream << )
prend beaucoup plus de temps que de formatter ce qu'on va
ecrire.
Donc les differences de performances entres les 2 methodes
doivent êtres minimes. Par contre entre un sprintf et un <<
dans un stringstream les differences de performances sont plus
flagrantes (en faveur du sprintf).
Reste à voir si le gain en performance vaut vraiment le coup
par rapport au gain en facilité (et donc en temps) de codage.
S'il te faut une chaîne, rien ne dit que
ostringstream soit moins rapide que de formatter dans un char[],
S'il te faut une chaîne, rien ne dit que
ostringstream soit moins rapide que de formatter dans un char[],
S'il te faut une chaîne, rien ne dit que
ostringstream soit moins rapide que de formatter dans un char[],
On 4 Jul 2005 08:01:55 -0700, :
S'il te faut une chaîne, rien ne dit que ostringstream soit
moins rapide que de formatter dans un char[],
... et de toutes façons, toutes les considérations
métaphysiques ne mènent pas bien loin. Le mieux c'est de
mesurer le temps que prend le code considéré en utilisant les
iostream, s'apercevoir que c'est tellement rapide que ça ne
vaut pas le coup de chercher à optimiser, et passer à autre
chose. :-)
On 4 Jul 2005 08:01:55 -0700, kanze@gabi-soft.fr:
S'il te faut une chaîne, rien ne dit que ostringstream soit
moins rapide que de formatter dans un char[],
... et de toutes façons, toutes les considérations
métaphysiques ne mènent pas bien loin. Le mieux c'est de
mesurer le temps que prend le code considéré en utilisant les
iostream, s'apercevoir que c'est tellement rapide que ça ne
vaut pas le coup de chercher à optimiser, et passer à autre
chose. :-)
On 4 Jul 2005 08:01:55 -0700, :
S'il te faut une chaîne, rien ne dit que ostringstream soit
moins rapide que de formatter dans un char[],
... et de toutes façons, toutes les considérations
métaphysiques ne mènent pas bien loin. Le mieux c'est de
mesurer le temps que prend le code considéré en utilisant les
iostream, s'apercevoir que c'est tellement rapide que ça ne
vaut pas le coup de chercher à optimiser, et passer à autre
chose. :-)