csArrayCmp< T, K > Class Template Reference
[Containers]
A functor template which encapsulates a key and a comparison function for use with key-related csArray<> searching methods, such as FindKey() and FindSortedKey().
More...
#include <csutil/array.h>
Public Types | |
typedef int(*) | CF (T const &, K const &) |
Type of the comparison function which compares a key against an element contained in a csArray<>. | |
Public Member Functions | |
csArrayCmp (csArrayCmp const &o) | |
Construct a functor from another functor. | |
csArrayCmp (K const &k, CF c=DefaultCompare) | |
Construct a functor from a search key and a comparison function. | |
operator CF () const | |
Return the comparison function with which this functor was constructed. | |
operator K const & () const | |
Return the key with which this functor was constructed. | |
int | operator() (T const &r) const |
Invoke the functor. | |
csArrayCmp & | operator= (csArrayCmp const &o) |
Assign another functor to this one. | |
Static Public Member Functions | |
static int | DefaultCompare (T const &r, K const &k) |
Compare two objects of the same type or different types (T and K). |
Detailed Description
template<class T, class K>
class csArrayCmp< T, K >
A functor template which encapsulates a key and a comparison function for use with key-related csArray<> searching methods, such as FindKey() and FindSortedKey().
Being a template instaniated upon two (possibly distinct) types, this allows the searching methods to perform type-safe searches even when the search key type differs from the contained element type. The supplied search function defines the relationship between the search key and the contained element.
Definition at line 52 of file array.h.
Member Typedef Documentation
template<class T, class K>
typedef int(*) csArrayCmp< T, K >::CF(T const &, K const &) |
Constructor & Destructor Documentation
template<class T, class K>
csArrayCmp< T, K >::csArrayCmp | ( | K const & | k, | |
CF | c = DefaultCompare | |||
) | [inline] |
template<class T, class K>
csArrayCmp< T, K >::csArrayCmp | ( | csArrayCmp< T, K > const & | o | ) | [inline] |
Member Function Documentation
template<class T, class K>
static int csArrayCmp< T, K >::DefaultCompare | ( | T const & | r, | |
K const & | k | |||
) | [inline, static] |
Compare two objects of the same type or different types (T and K).
- Parameters:
-
r Reference to the element to which the key should be compared. k Reference to the key to which the element should be compared.
- Returns:
- Zero if the key matches the element; less-than-zero if the element is less than the key; greater-than-zero if the element is greater than the key.
- Remarks:
- Assumes the presence of T::operator<(K) and K::operator<(T). Default comparison function if client does not supply one.
template<class T, class K>
csArrayCmp< T, K >::operator CF | ( | ) | const [inline] |
template<class T, class K>
csArrayCmp< T, K >::operator K const & | ( | ) | const [inline] |
template<class T, class K>
int csArrayCmp< T, K >::operator() | ( | T const & | r | ) | const [inline] |
template<class T, class K>
csArrayCmp& csArrayCmp< T, K >::operator= | ( | csArrayCmp< T, K > const & | o | ) | [inline] |
The documentation for this class was generated from the following file:
- csutil/array.h
Generated for Crystal Space by doxygen 1.4.7