activemq-cpp-3.6.0
decaf::util::Comparator< T > Class Template Reference

A comparison function, which imposes a total ordering on some collection of objects. More...

#include <src/main/decaf/util/Comparator.h>

Public Member Functions

virtual ~Comparator ()
virtual bool operator() (const T &left, const T &right) const =0
 Implementation of the Binary function interface as a means of allowing a Comparator to be passed to an STL Map for use as the sorting criteria.
virtual int compare (const T &o1, const T &o2) const =0
 Compares its two arguments for order.

Detailed Description

template<typename T>
class decaf::util::Comparator< T >

A comparison function, which imposes a total ordering on some collection of objects.

Comparators can be passed to a sort method (such as Collections.sort) to allow precise control over the sort order. Comparators can also be used to control the order of certain data structures.

The ordering imposed by a Comparator c on a set of elements S is said to be consistent with equals if and only if ( compare( e1, e2) == 0 ) has the same boolean value as ( e1 == e2 ) for every e1 and e2 in S.

Since
1.0

Constructor & Destructor Documentation

template<typename T>
virtual decaf::util::Comparator< T >::~Comparator ( )
inlinevirtual

Member Function Documentation

template<typename T>
virtual int decaf::util::Comparator< T >::compare ( const T &  o1,
const T &  o2 
) const
pure virtual

Compares its two arguments for order.

Returns a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.

The implementor must ensure that sgn( compare(x, y)) == -sgn(compare(y, x) ) for all x and y. (This implies that compare(x, y) must throw an exception if and only if compare(y, x) throws an exception.)

The implementor must also ensure that the relation is transitive: ((compare(x, y)>0) && (compare(y, z)>0)) implies compare(x, z)>0.

Finally, the implementer must ensure that compare(x, y)==0 implies that sgn(compare(x, z))==sgn(compare(y, z)) for all z.

It is generally the case, but not strictly required that (compare(x, y)==0) == ( x == y) ). Generally speaking, any comparator that violates this condition should clearly indicate this fact. The recommended language is "Note: this comparator imposes orderings that are inconsistent with equals."

Parameters
o1The first object to be compared
o2The second object to be compared
Returns
a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.

Implemented in decaf::util::comparators::Less< E >.

template<typename T>
virtual bool decaf::util::Comparator< T >::operator() ( const T &  left,
const T &  right 
) const
pure virtual

Implementation of the Binary function interface as a means of allowing a Comparator to be passed to an STL Map for use as the sorting criteria.

Parameters
leftThe Left hand side operand.
rightThe Right hand side operand.
Returns
true if the vale of left is less than the value of right.

Implemented in decaf::util::comparators::Less< E >.


The documentation for this class was generated from the following file: