Transform a vector with bind1st and divides : divides « STL Algorithms Helper « C++






Transform a vector with bind1st and divides

  
#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( divides<float>(), 1 ) );
   cout << fixed << setprecision( 2 );
   print( v);

   // convert to percentages
   transform( v.begin(), v.end(), v.begin(),bind1st( multiplies<float>(), 100 ) );
   print( v);

   // make a sequence starting at -10 and increasing by 100
   v.assign( v.size(), 100 );
   v[0] = -10;
   partial_sum( v.begin(), v.end(), v.begin() );
   print( v );

   // truncate numbers to fall between 0 and 255 inclusive
   replace_if( v.begin(), v.end(),bind2nd( greater<float>(), 255 ), 255 );
   replace_if( v.begin(), v.end(), bind2nd( less<float>(), 0 ), 0 );
   print( v);

}
  
    
  








Related examples in the same category

1.Use a binary function object divides
2.Divided contents of a list with transform() and divides()
3.Transform with divides