std::transform à l'aide de C++0x expression lambda

Comment cela est possible en C++0x?

std::vector<double> myv1;
std::transform(myv1.begin(), myv1.end(), myv1.begin(),
               std::bind1st(std::multiplies<double>(),3));

Question d'origine et la solution est ici.

  • ....a cette prise de ce post? stackoverflow.com/questions/3885095/...
  • oui, je me suis lié à cette ci-dessus
  • ah, ok. raté
  • mon mauvais, c'était une modification dans l'intérêt de la divulgation complète
  • Pourquoi ne pas simplement for_each(begin(myv1), end(myv1), [](double& a) { a *= 3; }?
  • for_each ne pas modifier les éléments - j'ai essayé cette solution à l'original q - voir stackoverflow.com/questions/662845/...
  • Townsend: Comme indiqué dans le fil de discussion lié, for_each est bien sûr autorisés pour modifier la non-const éléments de votre séquence de non-modification se réfère à la structure du conteneur qui nous laisser intact.
  • Vous devriez ajouter que comme une réponse. Je vais supprimer le mien.
  • Merci - voici pour vous 😉