hobbes
a language, embedded compiler, and runtime for efficient dynamic expression evaluation, data storage and analysis
Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
hobbes::prefix_tree< K, V, KMap > Class Template Reference

#include <trie.H>

Inheritance diagram for hobbes::prefix_tree< K, V, KMap >:
Inheritance graph
Collaboration diagram for hobbes::prefix_tree< K, V, KMap >:
Collaboration graph

Public Types

typedef std::vector< V > ValueSeq
 
typedef void * point_t
 
typedef std::vector< K > KeySeq
 
typedef std::pair< K, point_tKeyPoint
 
typedef std::vector< KeyPointKeyPointSeq
 

Public Member Functions

 prefix_tree ()
 
 ~prefix_tree ()
 
template<typename KIter >
void insert (KIter begin, KIter end, const V &v)
 
template<typename KIter >
V * lookup (KIter begin, KIter end) const
 
void insert (const std::vector< K > &k, const V &v)
 
V * lookup (const std::vector< K > &k) const
 
void values (ValueSeq *vs) const
 
ValueSeq values () const
 
point_t rootPoint () const
 
point_t moveTo (const K &k, point_t base) const
 
void keysAt (KeySeq *ks, point_t base) const
 
KeySeq keysAt (point_t base) const
 
void keyPointsAt (KeyPointSeq *kps, point_t base) const
 
V * valueAt (point_t base) const
 

Private Types

typedef prefix_tree_node< K, V, KMap > node_t
 

Private Member Functions

template<typename KIter >
node_tmakeNode (KIter begin, KIter end)
 
template<typename KIter >
const node_tfindNode (KIter begin, KIter end) const
 

Private Attributes

node_troot
 

Member Typedef Documentation

◆ KeyPoint

template<typename K, typename V, typename KMap>
typedef std::pair<K, point_t> hobbes::prefix_tree< K, V, KMap >::KeyPoint

◆ KeyPointSeq

template<typename K, typename V, typename KMap>
typedef std::vector<KeyPoint> hobbes::prefix_tree< K, V, KMap >::KeyPointSeq

◆ KeySeq

template<typename K, typename V, typename KMap>
typedef std::vector<K> hobbes::prefix_tree< K, V, KMap >::KeySeq

◆ node_t

template<typename K, typename V, typename KMap>
typedef prefix_tree_node<K, V, KMap> hobbes::prefix_tree< K, V, KMap >::node_t
private

◆ point_t

template<typename K, typename V, typename KMap>
typedef void* hobbes::prefix_tree< K, V, KMap >::point_t

◆ ValueSeq

template<typename K, typename V, typename KMap>
typedef std::vector<V> hobbes::prefix_tree< K, V, KMap >::ValueSeq

Constructor & Destructor Documentation

◆ prefix_tree()

template<typename K, typename V, typename KMap>
hobbes::prefix_tree< K, V, KMap >::prefix_tree ( )
inline

◆ ~prefix_tree()

template<typename K, typename V, typename KMap>
hobbes::prefix_tree< K, V, KMap >::~prefix_tree ( )
inline

Member Function Documentation

◆ findNode()

template<typename K, typename V, typename KMap>
template<typename KIter >
const node_t* hobbes::prefix_tree< K, V, KMap >::findNode ( KIter  begin,
KIter  end 
) const
inlineprivate

◆ insert() [1/2]

template<typename K, typename V, typename KMap>
template<typename KIter >
void hobbes::prefix_tree< K, V, KMap >::insert ( KIter  begin,
KIter  end,
const V &  v 
)
inline

◆ insert() [2/2]

template<typename K, typename V, typename KMap>
void hobbes::prefix_tree< K, V, KMap >::insert ( const std::vector< K > &  k,
const V &  v 
)
inline

◆ keyPointsAt()

template<typename K, typename V, typename KMap>
void hobbes::prefix_tree< K, V, KMap >::keyPointsAt ( KeyPointSeq kps,
point_t  base 
) const
inline

◆ keysAt() [1/2]

template<typename K, typename V, typename KMap>
void hobbes::prefix_tree< K, V, KMap >::keysAt ( KeySeq ks,
point_t  base 
) const
inline

◆ keysAt() [2/2]

template<typename K, typename V, typename KMap>
KeySeq hobbes::prefix_tree< K, V, KMap >::keysAt ( point_t  base) const
inline

◆ lookup() [1/2]

template<typename K, typename V, typename KMap>
template<typename KIter >
V* hobbes::prefix_tree< K, V, KMap >::lookup ( KIter  begin,
KIter  end 
) const
inline

◆ lookup() [2/2]

template<typename K, typename V, typename KMap>
V* hobbes::prefix_tree< K, V, KMap >::lookup ( const std::vector< K > &  k) const
inline

◆ makeNode()

template<typename K, typename V, typename KMap>
template<typename KIter >
node_t* hobbes::prefix_tree< K, V, KMap >::makeNode ( KIter  begin,
KIter  end 
)
inlineprivate

◆ moveTo()

template<typename K, typename V, typename KMap>
point_t hobbes::prefix_tree< K, V, KMap >::moveTo ( const K &  k,
point_t  base 
) const
inline

◆ rootPoint()

template<typename K, typename V, typename KMap>
point_t hobbes::prefix_tree< K, V, KMap >::rootPoint ( ) const
inline

◆ valueAt()

template<typename K, typename V, typename KMap>
V* hobbes::prefix_tree< K, V, KMap >::valueAt ( point_t  base) const
inline

◆ values() [1/2]

template<typename K, typename V, typename KMap>
void hobbes::prefix_tree< K, V, KMap >::values ( ValueSeq vs) const
inline

◆ values() [2/2]

template<typename K, typename V, typename KMap>
ValueSeq hobbes::prefix_tree< K, V, KMap >::values ( ) const
inline

Member Data Documentation

◆ root

template<typename K, typename V, typename KMap>
node_t* hobbes::prefix_tree< K, V, KMap >::root
private

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