Top of document
©Copyright 1999 Rogue Wave Software

not_equal_to


     Function Object

Summary

Binary function object that returns true if its first argument is not equal to its second.

Contents

Synopsis

#include <functional>
template <class T>
struct not_equal_to : public binary_function<T, T, bool> ;

Description

not_equal_to is a binary function object. Its operator() returns true if x is not equal to y. You can pass a not_equal_to 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. not_equal_to 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(), not_equal_to<int>());

After this call to transform, vecResult(n) will contain a "1" if vec1(n) was not equal to vec2(n) or a "1" if vec1(n) was equal to vec2(n).

Interface

template <class T>
struct not_equal_to : binary_function<T, T, bool> {
  typedef typename binary_function<T, T, bool>::second_argument_type  
                                                second_argument_type;
  typedef typename binary_function<T, T, bool>::first_argument_type
                                                first_argument_type;
  typedef typename binary_function<T, T, bool>::result_type 
                                                result_type;
  bool operator() (const T&, const T&) const;
};

Warning

If your compiler does not support default template parameters, then you need to always supply the Allocator template argument. For instance, you will need to write :

vector<int, allocator>

instead of :

vector<int>

See Also

binary_function, Function Objects

Top of document