\hypertarget{trie_8h}{}\doxysection{kblib/trie.h File Reference}
\label{trie_8h}\index{kblib/trie.h@{kblib/trie.h}}


Provides the trie data structure.  


{\ttfamily \#include \char`\"{}tdecl.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}sort.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}traits.\+h\char`\"{}}\newline
{\ttfamily \#include $<$array$>$}\newline
{\ttfamily \#include $<$bitset$>$}\newline
{\ttfamily \#include $<$vector$>$}\newline
Include dependency graph for trie.\+h\+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{trie_8h__incl}
\end{center}
\end{figure}
This graph shows which files directly or indirectly include this file\+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=160pt]{trie_8h__dep__incl}
\end{center}
\end{figure}
\doxysubsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{structkblib_1_1iterator__extractor}{kblib\+::iterator\+\_\+extractor$<$ Container $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1indexer__extractor}{kblib\+::indexer\+\_\+extractor$<$ Container $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1extractor__policy__for}{kblib\+::extractor\+\_\+policy\+\_\+for$<$ Container, typename $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1extractor__policy__for_3_01_container_00_01void__t_3_01decltype_07std_1_1declval_544819f885a6e23bd6f87dda9bacc3f2}{kblib\+::extractor\+\_\+policy\+\_\+for$<$ Container, void\+\_\+t$<$ decltype(std\+::declval$<$ Container $>$()\mbox{[}0\mbox{]})$>$ $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1detail_1_1node}{kblib\+::detail\+::node$<$ Elem, Value $>$}}
\item 
class \mbox{\hyperlink{classkblib_1_1trie}{kblib\+::trie$<$ Key, T, Extractor, bool $>$}}
\item 
class \mbox{\hyperlink{classkblib_1_1trie_3_01_key_elem_00_01_t_00_01_extractor_00_01false_01_4}{kblib\+::trie$<$ Key\+Elem, T, Extractor, false $>$}}
\item 
class \mbox{\hyperlink{classkblib_1_1trie_3_01_key_elem_0f_0e_00_01_t_00_01_extractor_00_01false_01_4}{kblib\+::trie$<$ Key\+Elem\mbox{[}$\,$\mbox{]}, T, Extractor, false $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1default__extract_3_01_key_00_01void__if__t_3_01is__linear__container__v_3_01_key_01_4_01_4_01_4}{kblib\+::default\+\_\+extract$<$ Key, void\+\_\+if\+\_\+t$<$ is\+\_\+linear\+\_\+container\+\_\+v$<$ Key $>$ $>$ $>$}}
\item 
struct \mbox{\hyperlink{structkblib_1_1default__extract_3_01_key_elem_0f_0e_00_01void__if__t_3_01std_1_1is__integral__v_3_01_key_elem_01_4_01_4_01_4}{kblib\+::default\+\_\+extract$<$ Key\+Elem\mbox{[}$\,$\mbox{]}, void\+\_\+if\+\_\+t$<$ std\+::is\+\_\+integral\+\_\+v$<$ Key\+Elem $>$ $>$ $>$}}
\item 
class \mbox{\hyperlink{classkblib_1_1trie__qset}{kblib\+::trie\+\_\+qset$<$ Key, Extractor, offset\+\_\+type $>$}}
\item 
class \mbox{\hyperlink{classkblib_1_1trie__set}{kblib\+::trie\+\_\+set$<$ Key, Extractor, offset\+\_\+type $>$}}
\item 
class \mbox{\hyperlink{classkblib_1_1trie__map}{kblib\+::trie\+\_\+map$<$ Key, Value, Extractor, offset\+\_\+type, Sequence\+Container $>$}}
\item 
class \mbox{\hyperlink{classkblib_1_1trie__qmap}{kblib\+::trie\+\_\+qmap$<$ Key, Value, Extractor, offset\+\_\+type, Sequence\+Container $>$}}
\item 
class \mbox{\hyperlink{classkblib_1_1sparse__trie__set}{kblib\+::sparse\+\_\+trie\+\_\+set$<$ Key, Extractor $>$}}
\item 
class \mbox{\hyperlink{classkblib_1_1sparse__trie__map}{kblib\+::sparse\+\_\+trie\+\_\+map$<$ Key, Value, Extractor $>$}}
\end{DoxyCompactItemize}
\doxysubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item 
namespace \mbox{\hyperlink{namespacekblib}{kblib}}
\begin{DoxyCompactList}\small\item\em The main namespace in which all entities from kblib are defined. \end{DoxyCompactList}\item 
namespace \mbox{\hyperlink{namespacekblib_1_1detail}{kblib\+::detail}}
\begin{DoxyCompactList}\small\item\em The namespace used for implementation details within kblib. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename Container $>$ }\\using \mbox{\hyperlink{namespacekblib_a0ec1db9166c1c7928e764aa17e4f01e6}{kblib\+::default\+\_\+extractor\+\_\+t}} = typename std\+::conditional$<$ extractor\+\_\+policy\+\_\+for$<$ Container $>$\+::value==extractor\+\_\+policy\+::random\+\_\+access, indexer\+\_\+extractor$<$ Container $>$, iterator\+\_\+extractor$<$ Container $>$ $>$\+::type
\end{DoxyCompactItemize}
\doxysubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum class \mbox{\hyperlink{namespacekblib_a54f01b64a070a7f3e916ec21e1d0145f}{kblib\+::extractor\+\_\+policy}} \{ \mbox{\hyperlink{namespacekblib_a54f01b64a070a7f3e916ec21e1d0145fa982690af3684bc526ae7a353bc6ef61e}{kblib\+::forward\+\_\+iteration}}
, \mbox{\hyperlink{namespacekblib_a54f01b64a070a7f3e916ec21e1d0145fa298bbb8f070170fc998ccac67856211b}{kblib\+::random\+\_\+access}}
 \}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Provides the trie data structure. 

\begin{DoxyAuthor}{Author}
killerbee 
\end{DoxyAuthor}
\begin{DoxyDate}{Date}
2019-\/2021 
\end{DoxyDate}
\begin{DoxyCopyright}{Copyright}
GNU General Public Licence v3.\+0 
\end{DoxyCopyright}


Definition in file \mbox{\hyperlink{trie_8h_source}{trie.\+h}}.

