Get min and max value from a vector with your won logic : min « STL Algorithms Min Max « C++






Get min and max value from a vector with your won logic

  
#include <algorithm>
#include <functional>
#include <vector>
#include <iostream>
using namespace std;

class MinAndMax : public unary_function<int, void>
{
public:
  MinAndMax();
  void operator()(int elem);
  int min, max;

protected:
  bool first;
};

MinAndMax::MinAndMax() : min(-1), max(-1), first(true){}

void MinAndMax::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);

  MinAndMax 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);
}
  
    
  








Related examples in the same category

1.Use min for char and integer
2.Call min() with special comparison function
3.Finding the Minimum and Maximum of a Data Type