Mega Code Archive

 
Categories / C++ / Algorithm
 

Extends a unary_function

#include <algorithm> #include <functional> #include <vector> #include <iostream> using namespace std; class MinMax : public unary_function<int, void>{ public:   MinMax();   void operator()(int elem);   int min, max; protected:   bool first; }; MinMax::MinMax() : min(-1), max(-1), first(true){} void MinMax::operator()(int elem){   if (first) {     min = max = elem;   } else if (elem < min) {     min = elem;   } else if (elem > max) {     max = elem;   }   first = false; } int main(int argc, char** argv){   vector<int> myVector;   myVector.push_back(1);   myVector.push_back(2);   myVector.push_back(3);   MinMax func;   func = for_each(myVector.begin(), myVector.end(), func);   cout << "The max is " << func.max << endl;   cout << "The min is " << func.min << endl;   return (0); }