Elm  1.0
ELM is a library providing generic data structures, OS-independent interface, plugins and XML.
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
elm::genstruct::AssocList< K, T, C, E, N > Class Template Reference

#include <elm/genstruct/AssocList.h>

Classes

class  Iterator
 
class  KeyIterator
 
class  PairIterator
 

Public Member Functions

 AssocList (void)
 
 AssocList (const AssocList &alist)
 
int count (void) const
 
bool contains (const T &item) const
 
bool isEmpty (void) const
 
 operator bool (void) const
 
const T & first (void) const
 
const T & last (void) const
 
Iterator find (const T &item)
 
Iterator find (const T &item, const Iterator &iter)
 
Option< T > get (const K &key) const
 
get (const K &key, const T &def) const
 
bool hasKey (const K &key) const
 
void put (const K &key, const T &value)
 
void remove (const K &key)
 
void remove (const PairIterator &iter)
 

Detailed Description

template<class K, class T, class C = Comparator<K>, class E = Equiv<T>, class N = type_info<T>>
class elm::genstruct::AssocList< K, T, C, E, N >

An associative list is a sorted list providing assocition between a key and to value. It may be used to store a collection of item indexed that support fast retrieval or deletion.

Note that this collection is implemented as a list. If the size of the list is n, each operation has a complexity of O(n/2) in average. In practice, this class becomes wholly inefficient when the list contains several tens of values.

Implemented concepts:
Parameters
KIndexed key type.
TStored value type.
CComparator used to compare K keys (default to elm::Comparator<K>).
EEquivalence relation for T (default to Equiv<T>).
NNull value for T (default to type_infow<T>).

Constructor & Destructor Documentation

template<class K, class T, class C = Comparator<K>, class E = Equiv<T>, class N = type_info<T>>
elm::genstruct::AssocList< K, T, C, E, N >::AssocList ( void  )

Build an empty associative list.

template<class K, class T, class C = Comparator<K>, class E = Equiv<T>, class N = type_info<T>>
elm::genstruct::AssocList< K, T, C, E, N >::AssocList ( const AssocList< K, T, C, E, N > &  alist)

Build an associative list by cloning another one.

Parameters
alistAssociative list to clone.

Member Function Documentation

template<class K, class T, class C = Comparator<K>, class E = Equiv<T>, class N = type_info<T>>
bool elm::genstruct::AssocList< K, T, C, E, N >::contains ( const T &  item) const
template<class K, class T, class C = Comparator<K>, class E = Equiv<T>, class N = type_info<T>>
int elm::genstruct::AssocList< K, T, C, E, N >::count ( void  ) const
template<class K, class T, class C = Comparator<K>, class E = Equiv<T>, class N = type_info<T>>
Iterator elm::genstruct::AssocList< K, T, C, E, N >::find ( const T &  item)
template<class K, class T, class C = Comparator<K>, class E = Equiv<T>, class N = type_info<T>>
Iterator elm::genstruct::AssocList< K, T, C, E, N >::find ( const T &  item,
const Iterator iter 
)
template<class K, class T, class C = Comparator<K>, class E = Equiv<T>, class N = type_info<T>>
const T& elm::genstruct::AssocList< K, T, C, E, N >::first ( void  ) const
template<class K, class T, class C = Comparator<K>, class E = Equiv<T>, class N = type_info<T>>
Option<T> elm::genstruct::AssocList< K, T, C, E, N >::get ( const K &  key) const
template<class K, class T, class C = Comparator<K>, class E = Equiv<T>, class N = type_info<T>>
T elm::genstruct::AssocList< K, T, C, E, N >::get ( const K &  key,
const T &  def 
) const
template<class K, class T, class C = Comparator<K>, class E = Equiv<T>, class N = type_info<T>>
bool elm::genstruct::AssocList< K, T, C, E, N >::hasKey ( const K &  key) const
template<class K, class T, class C = Comparator<K>, class E = Equiv<T>, class N = type_info<T>>
bool elm::genstruct::AssocList< K, T, C, E, N >::isEmpty ( void  ) const
template<class K, class T, class C = Comparator<K>, class E = Equiv<T>, class N = type_info<T>>
const T& elm::genstruct::AssocList< K, T, C, E, N >::last ( void  ) const
template<class K, class T, class C = Comparator<K>, class E = Equiv<T>, class N = type_info<T>>
elm::genstruct::AssocList< K, T, C, E, N >::operator bool ( void  ) const
template<class K, class T, class C = Comparator<K>, class E = Equiv<T>, class N = type_info<T>>
void elm::genstruct::AssocList< K, T, C, E, N >::put ( const K &  key,
const T &  value 
)
template<class K, class T, class C = Comparator<K>, class E = Equiv<T>, class N = type_info<T>>
void elm::genstruct::AssocList< K, T, C, E, N >::remove ( const K &  key)
template<class K, class T, class C = Comparator<K>, class E = Equiv<T>, class N = type_info<T>>
void elm::genstruct::AssocList< K, T, C, E, N >::remove ( const PairIterator iter)

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