Problème avec std::multiplies
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:
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.