Bonjour,

je souhaiterai multiplier chaque élément d'un vector en utilisant la fonction STL std::multiplies, mais j'ai un peu de mal à la faire fonctionner. Voici comment je m'y prend :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
std::vector <int> ivec;
ivec.push_back (1);
ivec.push_back (2);
ivec.push_back (3);
ivec.push_back (4);
 
std::for_each(ivec.begin(), ivec.end(), std::bind2nd(std::multiplies <int>(), 2));
 
std::cout << ivec[0] << ' ' << ivec[1] << ' ' << ivec[2] << ' ' << ivec[3];
Hélas, mes valeurs restent les mêmes qu'au début :/. Sinon, j'aimerais savoir la différence entre std::bind2nd et std::bind1st, car en essayant tout à l'heure une fonction, ça me donnait le même résultat qu'elle que soit le bind utiliser.