Function Object
Returns the result of subtracting its second argument from its first.
#include<functional>
template <class T> struct minus : public binary_function<T, T, T>;
minus is a binary function object. Its operator() returns the result of x minus y. You can pass a minus object to any algorithm that requires a binary function. For example, the transform algorithm applies a binary operation to corresponding values in two collections and stores the result. minus would be used in that algorithm in the following manner:
vector<int> vec1;
vector<int> vec2; vector<int> vecResult; . . . transform(vec1.begin(), vec1.end(), vec2.begin(), vecResult.begin(), minus<int>());
After this call to transform, vecResult(n) will contain vec1(n) minus vec2(n).
template <class T>
struct minus : binary_function<T, T, T> { typedef typename binary_function<T, T, T>::second_argument_type second_argument_type; typedef typename binary_function<T, T, T>::first_argument_type first_argument_type; typedef typename binary_function<T, T, T>::result_type result_type; T operator() (const T&, const T&) const; };
If your compiler does not support default template parameters, then you need to always supply the Allocator template argument. For instance, you will have to write :
vector<int, allocator>
instead of :
vector<int>
binary_function, Function Objects