.TH "__gnu_pbds::detail::pat_trie_map< Key, Mapped, Node_And_It_Traits, _Alloc >" 3cxx "libstdc++" \" -*- nroff -*- .ad l .nh .SH NAME __gnu_pbds::detail::pat_trie_map< Key, Mapped, Node_And_It_Traits, _Alloc > \- PATRICIA trie\&. .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits Node_And_It_Traits::synth_access_traits, Node_And_It_Traits::node_update, \fB__gnu_pbds::detail::types_traits< Key, Mapped, _Alloc, false >\fP, and \fB__gnu_pbds::detail::pat_trie_base\fP\&. .SS "Public Types" .in +1c .ti -1c .RI "typedef traits_type::access_traits \fBaccess_traits\fP" .br .ti -1c .RI "typedef _Alloc \fBallocator_type\fP" .br .ti -1c .RI "typedef \fBstd::pair\fP< size_type, size_type > \fBcomp_hash\fP" .br .ti -1c .RI "typedef point_const_iterator \fBconst_iterator\fP" .br .ti -1c .RI "typedef traits_base::const_pointer \fBconst_pointer\fP" .br .ti -1c .RI "typedef traits_base::const_reference \fBconst_reference\fP" .br .ti -1c .RI "typedef traits_type::const_reverse_iterator \fBconst_reverse_iterator\fP" .br .ti -1c .RI "typedef \fBpat_trie_tag\fP \fBcontainer_category\fP" .br .ti -1c .RI "typedef _Alloc::difference_type \fBdifference_type\fP" .br .ti -1c .RI "typedef point_iterator \fBiterator\fP" .br .ti -1c .RI "typedef traits_base::key_const_pointer \fBkey_const_pointer\fP" .br .ti -1c .RI "typedef traits_base::key_const_reference \fBkey_const_reference\fP" .br .ti -1c .RI "typedef traits_base::key_pointer \fBkey_pointer\fP" .br .ti -1c .RI "typedef traits_base::key_reference \fBkey_reference\fP" .br .ti -1c .RI "typedef traits_base::key_type \fBkey_type\fP" .br .ti -1c .RI "typedef traits_base::mapped_const_pointer \fBmapped_const_pointer\fP" .br .ti -1c .RI "typedef traits_base::mapped_const_reference \fBmapped_const_reference\fP" .br .ti -1c .RI "typedef traits_base::mapped_pointer \fBmapped_pointer\fP" .br .ti -1c .RI "typedef traits_base::mapped_reference \fBmapped_reference\fP" .br .ti -1c .RI "typedef traits_base::mapped_type \fBmapped_type\fP" .br .ti -1c .RI "typedef __nothrowcopy::indicator \fBno_throw_indicator\fP" .br .ti -1c .RI "typedef traits_type::node_const_iterator \fBnode_const_iterator\fP" .br .ti -1c .RI "typedef traits_type::node_iterator \fBnode_iterator\fP" .br .ti -1c .RI "enum \fBnode_type\fP { \fBi_node\fP, \fBleaf_node\fP, \fBhead_node\fP }" .br .RI "Three types of nodes\&. " .ti -1c .RI "typedef traits_type::node_update \fBnode_update\fP" .br .ti -1c .RI "typedef traits_type::const_iterator \fBpoint_const_iterator\fP" .br .ti -1c .RI "typedef traits_type::iterator \fBpoint_iterator\fP" .br .ti -1c .RI "typedef traits_base::pointer \fBpointer\fP" .br .ti -1c .RI "typedef traits_base::reference \fBreference\fP" .br .ti -1c .RI "typedef traits_type::reverse_iterator \fBreverse_iterator\fP" .br .ti -1c .RI "typedef _Alloc::size_type \fBsize_type\fP" .br .ti -1c .RI "typedef integral_constant< int, Store_Hash > \fBstore_extra\fP" .br .ti -1c .RI "typedef traits_base::value_type \fBvalue_type\fP" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBpat_trie_map\fP (const access_traits &)" .br .ti -1c .RI "\fBpat_trie_map\fP (const \fBtree_order_statistics_node_update\fP< Node_CItr, Node_Itr, Cmp_Fn, _Alloc > &)" .br .ti -1c .RI "iterator \fBbegin\fP ()" .br .ti -1c .RI "const_iterator \fBbegin\fP () const" .br .ti -1c .RI "void \fBclear\fP ()" .br .ti -1c .RI "_GLIBCXX_NODISCARD bool \fBempty\fP () const" .br .ti -1c .RI "iterator \fBend\fP ()" .br .ti -1c .RI "const_iterator \fBend\fP () const" .br .ti -1c .RI "const_iterator \fBerase\fP (const_iterator)" .br .ti -1c .RI "const_reverse_iterator \fBerase\fP (const_reverse_iterator)" .br .ti -1c .RI "iterator \fBerase\fP (iterator)" .br .ti -1c .RI "bool \fBerase\fP (key_const_reference)" .br .ti -1c .RI "reverse_iterator \fBerase\fP (reverse_iterator)" .br .ti -1c .RI "template size_type \fBerase_if\fP (Pred)" .br .ti -1c .RI "point_iterator \fBfind\fP (key_const_reference)" .br .ti -1c .RI "point_const_iterator \fBfind\fP (key_const_reference) const" .br .ti -1c .RI "access_traits & \fBget_access_traits\fP ()" .br .ti -1c .RI "const access_traits & \fBget_access_traits\fP () const" .br .ti -1c .RI "node_update & \fBget_node_update\fP ()" .br .ti -1c .RI "const node_update & \fBget_node_update\fP () const" .br .ti -1c .RI "\fBstd::pair\fP< point_iterator, bool > \fBinsert\fP (const_reference)" .br .ti -1c .RI "void \fBjoin\fP (\fBtree_order_statistics_node_update\fP< Node_CItr, Node_Itr, Cmp_Fn, _Alloc > &)" .br .ti -1c .RI "point_iterator \fBlower_bound\fP (key_const_reference)" .br .ti -1c .RI "point_const_iterator \fBlower_bound\fP (key_const_reference) const" .br .ti -1c .RI "size_type \fBmax_size\fP () const" .br .ti -1c .RI "node_iterator \fBnode_begin\fP ()" .br .RI "Returns a node_iterator corresponding to the node at the root of the tree\&. " .ti -1c .RI "node_const_iterator \fBnode_begin\fP () const" .br .RI "Returns a const node_iterator corresponding to the node at the root of the tree\&. " .ti -1c .RI "node_iterator \fBnode_end\fP ()" .br .RI "Returns a node_iterator corresponding to a node just after a leaf of the tree\&. " .ti -1c .RI "node_const_iterator \fBnode_end\fP () const" .br .RI "Returns a const node_iterator corresponding to a node just after a leaf of the tree\&. " .ti -1c .RI "mapped_reference \fBoperator[]\fP (key_const_reference r_key)" .br .ti -1c .RI "reverse_iterator \fBrbegin\fP ()" .br .ti -1c .RI "const_reverse_iterator \fBrbegin\fP () const" .br .ti -1c .RI "reverse_iterator \fBrend\fP ()" .br .ti -1c .RI "const_reverse_iterator \fBrend\fP () const" .br .ti -1c .RI "size_type \fBsize\fP () const" .br .ti -1c .RI "void \fBsplit\fP (key_const_reference, \fBtree_order_statistics_node_update\fP< Node_CItr, Node_Itr, Cmp_Fn, _Alloc > &)" .br .ti -1c .RI "void \fBswap\fP (\fBtree_order_statistics_node_update\fP< Node_CItr, Node_Itr, Cmp_Fn, _Alloc > &)" .br .ti -1c .RI "point_iterator \fBupper_bound\fP (key_const_reference)" .br .ti -1c .RI "point_const_iterator \fBupper_bound\fP (key_const_reference) const" .br .in -1c .SS "Public Attributes" .in +1c .ti -1c .RI "no_throw_indicator \fBm_no_throw_copies_indicator\fP" .br .ti -1c .RI "store_extra \fBm_store_extra_indicator\fP" .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "template void \fBcopy_from_range\fP (It, It)" .br .ti -1c .RI "node_pointer \fBrecursive_copy_node\fP (node_const_pointer)" .br .ti -1c .RI "void \fBvalue_swap\fP (\fBtree_order_statistics_node_update\fP< Node_CItr, Node_Itr, Cmp_Fn, _Alloc > &)" .br .in -1c .SH "Detailed Description" .PP .SS "template .br class __gnu_pbds::detail::pat_trie_map< Key, Mapped, Node_And_It_Traits, _Alloc >"PATRICIA trie\&. This implementation loosely borrows ideas from: 1) Fast Mergeable Integer Maps, Okasaki, Gill 1998 2) Ptset: Sets of integers implemented as Patricia trees, Jean-Christophe Filliatr, 2000 .PP Definition at line \fB101\fP of file \fBpat_trie_\&.hpp\fP\&. .SH "Member Typedef Documentation" .PP .SS "template typedef traits_type::access_traits \fB__gnu_pbds::detail::pat_trie_map\fP< Key, Mapped, Node_And_It_Traits, _Alloc >::access_traits" .PP Definition at line \fB259\fP of file \fBpat_trie_\&.hpp\fP\&. .SS "template typedef _Alloc \fB__gnu_pbds::detail::pat_trie_map\fP< Key, Mapped, Node_And_It_Traits, _Alloc >::allocator_type" .PP Definition at line \fB239\fP of file \fBpat_trie_\&.hpp\fP\&. .SS "typedef \fBstd::pair\fP \fB__gnu_pbds::detail::types_traits\fP< Key, Mapped, _Alloc, Store_Hash >::comp_hash\fC [inherited]\fP" .PP Definition at line \fB277\fP of file \fBtypes_traits\&.hpp\fP\&. .SS "template typedef point_const_iterator \fB__gnu_pbds::detail::pat_trie_map\fP< Key, Mapped, Node_And_It_Traits, _Alloc >::const_iterator" .PP Definition at line \fB262\fP of file \fBpat_trie_\&.hpp\fP\&. .SS "template typedef traits_base::const_pointer \fB__gnu_pbds::detail::pat_trie_map\fP< Key, Mapped, Node_And_It_Traits, _Alloc >::const_pointer" .PP Definition at line \fB255\fP of file \fBpat_trie_\&.hpp\fP\&. .SS "template typedef traits_base::const_reference \fB__gnu_pbds::detail::pat_trie_map\fP< Key, Mapped, Node_And_It_Traits, _Alloc >::const_reference" .PP Definition at line \fB257\fP of file \fBpat_trie_\&.hpp\fP\&. .SS "template typedef traits_type::const_reverse_iterator \fB__gnu_pbds::detail::pat_trie_map\fP< Key, Mapped, Node_And_It_Traits, _Alloc >::const_reverse_iterator" .PP Definition at line \fB266\fP of file \fBpat_trie_\&.hpp\fP\&. .SS "template typedef \fBpat_trie_tag\fP \fB__gnu_pbds::detail::pat_trie_map\fP< Key, Mapped, Node_And_It_Traits, _Alloc >::container_category" .PP Definition at line \fB238\fP of file \fBpat_trie_\&.hpp\fP\&. .SS "template typedef _Alloc::difference_type \fB__gnu_pbds::detail::pat_trie_map\fP< Key, Mapped, Node_And_It_Traits, _Alloc >::difference_type" .PP Definition at line \fB241\fP of file \fBpat_trie_\&.hpp\fP\&. .SS "template typedef point_iterator \fB__gnu_pbds::detail::pat_trie_map\fP< Key, Mapped, Node_And_It_Traits, _Alloc >::iterator" .PP Definition at line \fB263\fP of file \fBpat_trie_\&.hpp\fP\&. .SS "template typedef traits_base::key_const_pointer \fB__gnu_pbds::detail::pat_trie_map\fP< Key, Mapped, Node_And_It_Traits, _Alloc >::key_const_pointer" .PP Definition at line \fB245\fP of file \fBpat_trie_\&.hpp\fP\&. .SS "template typedef traits_base::key_const_reference \fB__gnu_pbds::detail::pat_trie_map\fP< Key, Mapped, Node_And_It_Traits, _Alloc >::key_const_reference" .PP Definition at line \fB247\fP of file \fBpat_trie_\&.hpp\fP\&. .SS "template typedef traits_base::key_pointer \fB__gnu_pbds::detail::pat_trie_map\fP< Key, Mapped, Node_And_It_Traits, _Alloc >::key_pointer" .PP Definition at line \fB244\fP of file \fBpat_trie_\&.hpp\fP\&. .SS "template typedef traits_base::key_reference \fB__gnu_pbds::detail::pat_trie_map\fP< Key, Mapped, Node_And_It_Traits, _Alloc >::key_reference" .PP Definition at line \fB246\fP of file \fBpat_trie_\&.hpp\fP\&. .SS "template typedef traits_base::key_type \fB__gnu_pbds::detail::pat_trie_map\fP< Key, Mapped, Node_And_It_Traits, _Alloc >::key_type" .PP Definition at line \fB243\fP of file \fBpat_trie_\&.hpp\fP\&. .SS "template typedef traits_base::mapped_const_pointer \fB__gnu_pbds::detail::pat_trie_map\fP< Key, Mapped, Node_And_It_Traits, _Alloc >::mapped_const_pointer" .PP Definition at line \fB250\fP of file \fBpat_trie_\&.hpp\fP\&. .SS "template typedef traits_base::mapped_const_reference \fB__gnu_pbds::detail::pat_trie_map\fP< Key, Mapped, Node_And_It_Traits, _Alloc >::mapped_const_reference" .PP Definition at line \fB252\fP of file \fBpat_trie_\&.hpp\fP\&. .SS "template typedef traits_base::mapped_pointer \fB__gnu_pbds::detail::pat_trie_map\fP< Key, Mapped, Node_And_It_Traits, _Alloc >::mapped_pointer" .PP Definition at line \fB249\fP of file \fBpat_trie_\&.hpp\fP\&. .SS "template typedef traits_base::mapped_reference \fB__gnu_pbds::detail::pat_trie_map\fP< Key, Mapped, Node_And_It_Traits, _Alloc >::mapped_reference" .PP Definition at line \fB251\fP of file \fBpat_trie_\&.hpp\fP\&. .SS "template typedef traits_base::mapped_type \fB__gnu_pbds::detail::pat_trie_map\fP< Key, Mapped, Node_And_It_Traits, _Alloc >::mapped_type" .PP Definition at line \fB248\fP of file \fBpat_trie_\&.hpp\fP\&. .SS "typedef __nothrowcopy::indicator \fB__gnu_pbds::detail::types_traits\fP< Key, Mapped, _Alloc, Store_Hash >::no_throw_indicator\fC [inherited]\fP" .PP Definition at line \fB279\fP of file \fBtypes_traits\&.hpp\fP\&. .SS "template typedef traits_type::node_const_iterator \fB__gnu_pbds::detail::pat_trie_map\fP< Key, Mapped, Node_And_It_Traits, _Alloc >::node_const_iterator" .PP Definition at line \fB267\fP of file \fBpat_trie_\&.hpp\fP\&. .SS "template typedef traits_type::node_iterator \fB__gnu_pbds::detail::pat_trie_map\fP< Key, Mapped, Node_And_It_Traits, _Alloc >::node_iterator" .PP Definition at line \fB268\fP of file \fBpat_trie_\&.hpp\fP\&. .SS "template typedef traits_type::node_update \fB__gnu_pbds::detail::pat_trie_map\fP< Key, Mapped, Node_And_It_Traits, _Alloc >::node_update" .PP Definition at line \fB269\fP of file \fBpat_trie_\&.hpp\fP\&. .SS "template typedef traits_type::const_iterator \fB__gnu_pbds::detail::pat_trie_map\fP< Key, Mapped, Node_And_It_Traits, _Alloc >::point_const_iterator" .PP Definition at line \fB260\fP of file \fBpat_trie_\&.hpp\fP\&. .SS "template typedef traits_type::iterator \fB__gnu_pbds::detail::pat_trie_map\fP< Key, Mapped, Node_And_It_Traits, _Alloc >::point_iterator" .PP Definition at line \fB261\fP of file \fBpat_trie_\&.hpp\fP\&. .SS "template typedef traits_base::pointer \fB__gnu_pbds::detail::pat_trie_map\fP< Key, Mapped, Node_And_It_Traits, _Alloc >::pointer" .PP Definition at line \fB254\fP of file \fBpat_trie_\&.hpp\fP\&. .SS "template typedef traits_base::reference \fB__gnu_pbds::detail::pat_trie_map\fP< Key, Mapped, Node_And_It_Traits, _Alloc >::reference" .PP Definition at line \fB256\fP of file \fBpat_trie_\&.hpp\fP\&. .SS "template typedef traits_type::reverse_iterator \fB__gnu_pbds::detail::pat_trie_map\fP< Key, Mapped, Node_And_It_Traits, _Alloc >::reverse_iterator" .PP Definition at line \fB265\fP of file \fBpat_trie_\&.hpp\fP\&. .SS "template typedef _Alloc::size_type \fB__gnu_pbds::detail::pat_trie_map\fP< Key, Mapped, Node_And_It_Traits, _Alloc >::size_type" .PP Definition at line \fB240\fP of file \fBpat_trie_\&.hpp\fP\&. .SS "typedef integral_constant \fB__gnu_pbds::detail::types_traits\fP< Key, Mapped, _Alloc, Store_Hash >::store_extra\fC [inherited]\fP" .PP Definition at line \fB278\fP of file \fBtypes_traits\&.hpp\fP\&. .SS "template typedef traits_base::value_type \fB__gnu_pbds::detail::pat_trie_map\fP< Key, Mapped, Node_And_It_Traits, _Alloc >::value_type" .PP Definition at line \fB253\fP of file \fBpat_trie_\&.hpp\fP\&. .SH "Member Enumeration Documentation" .PP .SS "enum \fB__gnu_pbds::detail::pat_trie_base::node_type\fP\fC [inherited]\fP" .PP Three types of nodes\&. i_node is used by _Inode, leaf_node by _Leaf, and head_node by _Head\&. .PP Definition at line \fB58\fP of file \fBpat_trie_base\&.hpp\fP\&. .SH "Member Function Documentation" .PP .SS "template node_iterator \fB__gnu_pbds::detail::pat_trie_map\fP< Key, Mapped, Node_And_It_Traits, _Alloc >::node_begin ()\fC [inline]\fP" .PP Returns a node_iterator corresponding to the node at the root of the tree\&. .SS "template node_const_iterator \fB__gnu_pbds::detail::pat_trie_map\fP< Key, Mapped, Node_And_It_Traits, _Alloc >::node_begin () const\fC [inline]\fP" .PP Returns a const node_iterator corresponding to the node at the root of the tree\&. .SS "template node_iterator \fB__gnu_pbds::detail::pat_trie_map\fP< Key, Mapped, Node_And_It_Traits, _Alloc >::node_end ()\fC [inline]\fP" .PP Returns a node_iterator corresponding to a node just after a leaf of the tree\&. .SS "template node_const_iterator \fB__gnu_pbds::detail::pat_trie_map\fP< Key, Mapped, Node_And_It_Traits, _Alloc >::node_end () const\fC [inline]\fP" .PP Returns a const node_iterator corresponding to a node just after a leaf of the tree\&. .SS "template mapped_reference \fB__gnu_pbds::detail::pat_trie_map\fP< Key, Mapped, Node_And_It_Traits, _Alloc >::operator[] (key_const_reference r_key)\fC [inline]\fP" .PP Definition at line \fB307\fP of file \fBpat_trie_\&.hpp\fP\&. .SH "Member Data Documentation" .PP .SS "no_throw_indicator \fB__gnu_pbds::detail::types_traits\fP< Key, Mapped, _Alloc, Store_Hash >::m_no_throw_copies_indicator\fC [inherited]\fP" .PP Definition at line \fB282\fP of file \fBtypes_traits\&.hpp\fP\&. .SS "store_extra \fB__gnu_pbds::detail::types_traits\fP< Key, Mapped, _Alloc, Store_Hash >::m_store_extra_indicator\fC [inherited]\fP" .PP Definition at line \fB281\fP of file \fBtypes_traits\&.hpp\fP\&. .SH "Author" .PP Generated automatically by Doxygen for libstdc++ from the source code\&.