activemq-cpp-3.4.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 ( ) [inline, virtual]

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: