Second question. You can use an object instead of a function:
#include <vector> #include <algorithm> class apply_me { int multiplicator_; public: apply_me(const int multiplicator) : multiplicator_(multiplicator) {}; int operator ()(const int element) const { return element*multiplicator_; }; }; int main() { std::vector<int> v; std::transform(v.begin(), v.end(),v.begin(), apply_me(3)); }
source share