additionner chaque menbre par 2 [STL] - C++ - Programmation
Marsh Posté le 27-06-2003 à 23:00:28
t'as deux formes de transform, et si t'avais lu la doc de transform, t'aurais vu qu'il peut être utilisé pour les transformations sur-place.
Dans ton cas
Code :
|
Marsh Posté le 29-06-2003 à 03:56:02
a comparer avec la forme intuitive :
for (it = lst.begin(); it != lst.end(); ++lst) *it += 0.2f;
Enfin, si c'est juste pour l'exemple, je dis pas..
LeGreg
Marsh Posté le 29-06-2003 à 11:00:59
si tu veux qu'on complique un peux la sauce, on va voir ce qui est le plus intuitif...
Marsh Posté le 29-06-2003 à 11:04:34
++Taz a écrit : si tu veux qu'on complique un peux la sauce, on va voir ce qui est le plus intuitif... |
la question n'est pas de compliquer pour compliquer.
Effectivement on peut apprendre a se servir de transform sur un exemple simple mais ce n'etait pas la question posee il me semble.
En plus j'aurais plutot applique for_each moi mais je suis un chieur.
LeGreg
Marsh Posté le 29-06-2003 à 11:05:57
legreg a écrit : |
for_each ne modifie pas la séquence d'entrée
Marsh Posté le 29-06-2003 à 11:15:11
Faut qu'on m'explique ce qu'affiche ce programme alors:
Code :
|
LeGreg
Marsh Posté le 29-06-2003 à 11:21:32
je trouve assez crade l'utilisation de for_each pour des modifications, c'est pour ça que je préfère transform. pour la peine ta version est plus longue...
et ton for_each print, il va vite se rhabiller devant
copy(v.begin(), v.end(), ostream_iterator<float>(cout, "\n" ));
Marsh Posté le 29-06-2003 à 11:25:04
enfin ç afait plaisir, y a quelques temps, c'etait assez inimaginable qu'on discute sur des questions d'esthétisme
Marsh Posté le 29-06-2003 à 11:29:01
gloop a écrit : |
J'ai ete inexact..
Il le fait mais si tu violes le template qui se laisse faire puisque de toute facon le C++ n'impose aucune contrainte sur les arguments d'un template.
De plus quand l'entree et la sortie sont la meme, autant utiliser la version auto-modifiante, mais c'est presque philosophique tant qu'il n'y a pas de surcout en performance.
C'est la raison pour laquelle on a des
"*=" et des "= . * ."
Au moins l'ecriture est plus compacte.
LeGreg
Marsh Posté le 29-06-2003 à 11:38:21
j'avais pas pensé à cette possibilité de for_each. mais je trouve ca quand meme moins clair
Marsh Posté le 27-06-2003 à 22:53:02
voilou a tout hasard je vous savoir s'il y avait une fonction qui me permettrait d'incrementer chaque menbre d'une list de float de 0.2.
Pour l'instant j'ai parcourus ma list, mais y a peut etre un algo plus performant
j'ai regardé la
http://www.sgi.com/tech/stl/plus.html
ms y a ecrit :
Each element in V3 will be the sum of the corresponding elements in V1 and V2
or moi j'aimerais faire la somme entre une liste float avec un float et non pas entre 2 list...