Материал из C\C++ эксперт
Convert to percentages with bind1st and multiplies
#include <algorithm>
#include <functional>
#include <iomanip>
#include <numeric>
#include <string>
#include <vector>
#include <iostream>
using namespace std;
template <class T>
void print(T& c){
for( typename T::iterator i = c.begin(); i != c.end(); i++ ){
std::cout << *i << endl;
}
}
bool in_string( char c, const string target ){
return target.find( c ) != string::npos;
}
int main( ){
vector<float> v( 5, 1 );
partial_sum( v.begin(), v.end(), v.begin() );
print( v);
transform( v.begin(), v.end(), v.begin(),bind1st( multiplies<float>(), 100 ) );
print( v);
}