activemq-cpp-3.4.0
|
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. |
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.
virtual decaf::util::Comparator< T >::~Comparator | ( | ) | [inline, virtual] |
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."
o1 | The first object to be compared |
o2 | The second object to be compared |
Implemented in decaf::util::comparators::Less< E >.
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.
left | The Left hand side operand. |
right | The Right hand side operand. |
Implemented in decaf::util::comparators::Less< E >.