Classes | Public Types | List of all members
moot::AssocVector< KeyT, ValT > Class Template Reference

LISP-style assoc list using vector<>: map-like class with small memory footprint. Useful for small associative arrays. Lookup and insert are linear time. More...

Inheritance diagram for moot::AssocVector< KeyT, ValT >:
Inheritance graph
[legend]
Collaboration diagram for moot::AssocVector< KeyT, ValT >:
Collaboration graph
[legend]

Classes

struct  value_sort_func
 

Public Types

typedef KeyT assoc_key_type
 
typedef ValT assoc_value_type
 
typedef AssocVectorNode< KeyT, ValT > assoc_node_type
 
typedef std::vector< assoc_node_typeassoc_vector_type
 
typedef assoc_vector_type::iterator iterator
 
typedef assoc_vector_type::const_iterator const_iterator
 
typedef assoc_vector_type::reverse_iterator reverse_iterator
 
typedef assoc_vector_type::const_reverse_iterator const_reverse_iterator
 

Public Member Functions

Constructors etc.
 AssocVector (void)
 
 AssocVector (const size_t mysize)
 
 ~AssocVector (void)
 
Iterator Utilities
iterator find (const KeyT &key)
 
const_iterator find (const KeyT &key) const
 
iterator get (const KeyT &key)
 
iterator insert (const KeyT &key, const ValT &val)
 
Get/Insert
assoc_node_typeget_node (const KeyT &key)
 
assoc_value_typeget_value (const KeyT &key)
 
assoc_node_typenth (const size_t n)
 
Operators
assoc_value_typeoperator[] (const KeyT &key)
 
const assoc_value_typeoperator[] (const KeyT &key) const
 
Sorting
void sort_bykey (void)
 
void rsort_bykey (void)
 
void sort_byvalue (void)
 
void rsort_byvalue (void)
 

Detailed Description

template<typename KeyT, typename ValT>
class moot::AssocVector< KeyT, ValT >

Requirements for KeyT

Requirements for ValT

Member Typedef Documentation

◆ assoc_key_type

template<typename KeyT, typename ValT>
typedef KeyT moot::AssocVector< KeyT, ValT >::assoc_key_type

◆ assoc_value_type

template<typename KeyT, typename ValT>
typedef ValT moot::AssocVector< KeyT, ValT >::assoc_value_type

◆ assoc_node_type

template<typename KeyT, typename ValT>
typedef AssocVectorNode<KeyT,ValT> moot::AssocVector< KeyT, ValT >::assoc_node_type

◆ assoc_vector_type

template<typename KeyT, typename ValT>
typedef std::vector<assoc_node_type> moot::AssocVector< KeyT, ValT >::assoc_vector_type

◆ iterator

template<typename KeyT, typename ValT>
typedef assoc_vector_type::iterator moot::AssocVector< KeyT, ValT >::iterator

◆ const_iterator

template<typename KeyT, typename ValT>
typedef assoc_vector_type::const_iterator moot::AssocVector< KeyT, ValT >::const_iterator

◆ reverse_iterator

template<typename KeyT, typename ValT>
typedef assoc_vector_type::reverse_iterator moot::AssocVector< KeyT, ValT >::reverse_iterator

◆ const_reverse_iterator

template<typename KeyT, typename ValT>
typedef assoc_vector_type::const_reverse_iterator moot::AssocVector< KeyT, ValT >::const_reverse_iterator

Constructor & Destructor Documentation

◆ AssocVector() [1/2]

template<typename KeyT, typename ValT>
moot::AssocVector< KeyT, ValT >::AssocVector ( void  )
inline

Default constructor

◆ AssocVector() [2/2]

template<typename KeyT, typename ValT>
moot::AssocVector< KeyT, ValT >::AssocVector ( const size_t  mysize)
inline

Constructor given size

◆ ~AssocVector()

template<typename KeyT, typename ValT>
moot::AssocVector< KeyT, ValT >::~AssocVector ( void  )
inline

Destructor

Member Function Documentation

◆ find() [1/2]

template<typename KeyT, typename ValT>
iterator moot::AssocVector< KeyT, ValT >::find ( const KeyT &  key)
inline

Return a read/write iterator pointing to the node for key, or end() if no such node exists

References moot::AssocVectorNode< KeyT, ValT >::key().

Referenced by moot::mootHMM::classp(), and moot::mootHMM::wordp().

◆ find() [2/2]

template<typename KeyT, typename ValT>
const_iterator moot::AssocVector< KeyT, ValT >::find ( const KeyT &  key) const
inline

Return a read-only iterator pointing to the node for key, or end() if no such node exists

References moot::AssocVectorNode< KeyT, ValT >::key().

◆ get()

template<typename KeyT, typename ValT>
iterator moot::AssocVector< KeyT, ValT >::get ( const KeyT &  key)
inline

Return a read/write iterator pointing a node for key, adding such a node if not already present

References moot::AssocVectorNode< KeyT, ValT >::key().

◆ insert()

template<typename KeyT, typename ValT>
iterator moot::AssocVector< KeyT, ValT >::insert ( const KeyT &  key,
const ValT &  val 
)
inline

Insert association key => value into the list. Returns an iterator pointing to the (possibly new) association.

References moot::AssocVectorNode< KeyT, ValT >::key().

◆ get_node()

template<typename KeyT, typename ValT>
assoc_node_type& moot::AssocVector< KeyT, ValT >::get_node ( const KeyT &  key)
inline

Get assocation for key , possibly creating a new one. Returns a reference to the (new) node.

References moot::AssocVectorNode< KeyT, ValT >::key().

◆ get_value()

template<typename KeyT, typename ValT>
assoc_value_type& moot::AssocVector< KeyT, ValT >::get_value ( const KeyT &  key)
inline

Alias for get_node(key)->second

◆ nth()

template<typename KeyT, typename ValT>
assoc_node_type& moot::AssocVector< KeyT, ValT >::nth ( const size_t  n)
inline

Get/insert the n th node

◆ operator[]() [1/2]

template<typename KeyT, typename ValT>
assoc_value_type& moot::AssocVector< KeyT, ValT >::operator[] ( const KeyT &  key)
inline

Alias for get_data(key)

◆ operator[]() [2/2]

template<typename KeyT, typename ValT>
const assoc_value_type& moot::AssocVector< KeyT, ValT >::operator[] ( const KeyT &  key) const
inline

Alias for find_data(key)

◆ sort_bykey()

template<typename KeyT, typename ValT>
void moot::AssocVector< KeyT, ValT >::sort_bykey ( void  )
inline

Sort contents in ascending order by key,value

◆ rsort_bykey()

template<typename KeyT, typename ValT>
void moot::AssocVector< KeyT, ValT >::rsort_bykey ( void  )
inline

Sort contents in descending order by key,value

◆ sort_byvalue()

template<typename KeyT, typename ValT>
void moot::AssocVector< KeyT, ValT >::sort_byvalue ( void  )
inline

Sort contents in ascending order by value,key

◆ rsort_byvalue()

template<typename KeyT, typename ValT>
void moot::AssocVector< KeyT, ValT >::rsort_byvalue ( void  )
inline

Sort contents in descending order by value,key


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