__GNU_PBDS::DETAIL::PAT_TRIE_BASE__NODE_CITER(3cxx)
π NAME π
__gnu_pbds::detail::pat_trie_base::_Node_citer< Node, Leaf, Head, Inode, _CIterator, Iterator, _Alloc > β Node const iterator π
Bestie, quick heads up: this is a section 3cxx page, and the title at the top of the original gets chopped to __gnu_pbds::de...rator, _Alloc > because the full template name is so long it does not fit. We don't make the rules, we just vibe with them π«Ά
β¨ SYNOPSIS β¨
#include <pat_trie_base.hpp>
Inherited by __gnu_pbds::detail::pat_trie_base::_Node_iter< Node, Leaf, Head, Inode, _CIterator, Iterator, _Alloc > β so like, _Node_iter is literally the child of this class, main character energy runs in the family π
πΈ Public Types πΈ
typedef value_type const_referenceβ the const reference flavor of the value type, no extra notes, it just is β¨typedef trivial_iterator_difference_type difference_typeβ difference type, and yes it's thetrivial_iteratorkind π¦typedef trivial_iterator_tag iterator_categoryβ iterator category tag:trivial_iterator_tag. Iconic, lowkey.typedef rebind_traits< _Alloc, metadata_type >::const_reference metadata_const_referenceβ Const metadata reference type.typedef Node::metadata_type metadata_typeβ Metadata type.typedef value_type referenceβ the reference flavor of the value type πtypedef _Alloc::size_type size_typeβ size type, straight from_Alloc; all sizes live here.typedef _CIterator value_typeβ the value type is_CIterator, no cap.
π¦ Public Member Functions π¦
_Node_citer (node_pointer p_nd=0, a_const_pointer p_traits=0)β constructor, and both args come with defaults so you can yeet it into existence with nothing π«Ά_Node_citer get_child (size_type i) constβ Returns a __const node __iterator to the corresponding node's i-th child.metadata_const_reference get_metadata () constβ Metadata access.size_type num_children () constβ Returns the number of children in the corresponding node.bool operator!= (const _Node_citer &other) constβ Compares content (negatively) to a different iterator object.const_reference operator* () constβ Const access; returns the __const iterator* associated with the current leaf.bool operator== (const _Node_citer &other) constβ Compares content to a different iterator object.std::pair< a_const_iterator, a_const_iterator > valid_prefix () constβ Subtree valid prefix.
π Public Attributes π
node_pointer m_p_ndβ the node pointer, out here in public, living its life πa_const_pointer m_p_traitsβ the traits pointer, also public, also thriving β¨
π§ Protected Types π§
typedef Node::a_const_iterator a_const_iteratorβa_const_iterator, straight offNode.typedef Node::a_const_pointer a_const_pointerβa_const_pointer, also straight offNode.typedef rebind_traits< _Alloc, Inode >::const_pointer inode_const_pointerβ const pointer rebind forInode.typedef rebind_traits< _Alloc, Inode >::pointer inode_pointerβ pointer rebind forInode.typedef rebind_traits< _Alloc, Leaf >::const_pointer leaf_const_pointerβ const pointer rebind forLeaf.typedef rebind_traits< _Alloc, Leaf >::pointer leaf_pointerβ pointer rebind forLeaf.typedef rebind_traits< _Alloc, Node >::pointer node_pointerβ pointer rebind forNode. It's giving allocation realness π
π Detailed Description π
template<typename Node, typename Leaf, typename Head, typename Inode,
typename _CIterator, typename Iterator, typename _Alloc>
class __gnu_pbds::detail::pat_trie_base::_Node_citer< Node, Leaf, Head,
Inode, _CIterator, Iterator, _Alloc >"Node const iterator.
Not me pointing out that stray " before Node const iterator. β that's verbatim from the docs, bestie, we are preserving the chaos π But yes: the class is __gnu_pbds::detail::pat_trie_base::_Node_citer< Node, Leaf, Head, Inode, _CIterator, Iterator, _Alloc >, and it is, in fact, a Node const iterator.
π Member Typedef Documentation π
metadata_const_reference
template<typename Node , typename Leaf , typename Head , typename Inode ,
typename _CIterator , typename Iterator , typename _Alloc > typedef
rebind_traits<_Alloc,metadata_type>::const_reference
__gnu_pbds::detail::pat_trie_base::_Node_citer< Node, Leaf, Head, Inode,
_CIterator, Iterator, _Alloc >::metadata_const_reference
Const metadata reference type. That's the whole story π¦
metadata_type
template<typename Node , typename Leaf , typename Head , typename Inode ,
typename _CIterator , typename Iterator , typename _Alloc > typedef
Node::metadata_type __gnu_pbds::detail::pat_trie_base::_Node_citer<
Node, Leaf, Head, Inode, _CIterator, Iterator, _Alloc >::metadata_type
Metadata type. Short, sweet, metadata-coded β¨
π₯ Member Function Documentation π₯
get_child
template<typename Node , typename Leaf , typename Head , typename Inode ,
typename _CIterator , typename Iterator , typename _Alloc > _Node_citer
__gnu_pbds::detail::pat_trie_base::_Node_citer< Node, Leaf, Head, Inode,
_CIterator, Iterator, _Alloc >::get_child (size_type i) const [inline]
Returns a __const node __iterator to the corresponding node's i-th child. Hand it an i, get back the child iterator, slay.
References std::advance().
get_metadata
template<typename Node , typename Leaf , typename Head , typename Inode ,
typename _CIterator , typename Iterator , typename _Alloc >
metadata_const_reference __gnu_pbds::detail::pat_trie_base::_Node_citer<
Node, Leaf, Head, Inode, _CIterator, Iterator, _Alloc >::get_metadata ()
const [inline]
Metadata access. That's it, that's the function π
num_children
template<typename Node , typename Leaf , typename Head , typename Inode ,
typename _CIterator , typename Iterator , typename _Alloc > size_type
__gnu_pbds::detail::pat_trie_base::_Node_citer< Node, Leaf, Head, Inode,
_CIterator, Iterator, _Alloc >::num_children () const [inline]
Returns the number of children in the corresponding node.
References std::distance().
Referenced by __gnu_pbds::detail::pat_trie_base::_Node_citer< Node, Leaf, Head, Inode, _CIterator, Iterator, _Alloc >::operator*(), and __gnu_pbds::detail::pat_trie_base::_Node_iter< Node, Leaf, Head, Inode, _CIterator, Iterator, _Alloc >::operator*(). So yeah, both operator*()s are literally leaning on it π«Ά
operator!=
template<typename Node , typename Leaf , typename Head , typename Inode ,
typename _CIterator , typename Iterator , typename _Alloc > bool
__gnu_pbds::detail::pat_trie_base::_Node_citer< Node, Leaf, Head, Inode,
_CIterator, Iterator, _Alloc >::operator!= (const _Node_citer< Node,
Leaf, Head, Inode, _CIterator, Iterator, _Alloc > & other) const
[inline]
Compares content (negatively) to a different iterator object. Negatively, as in: not equal, bestie π
operator*
template<typename Node , typename Leaf , typename Head , typename Inode ,
typename _CIterator , typename Iterator , typename _Alloc >
const_reference __gnu_pbds::detail::pat_trie_base::_Node_citer< Node,
Leaf, Head, Inode, _CIterator, Iterator, _Alloc >::operator* () const
[inline]
Const access; returns the __const iterator* associated with the current leaf. Dereference and chill πΈ
References __gnu_pbds::detail::pat_trie_base::_Node_citer< Node, Leaf, Head, Inode, _CIterator, Iterator, _Alloc >::num_children().
operator==
template<typename Node , typename Leaf , typename Head , typename Inode ,
typename _CIterator , typename Iterator , typename _Alloc > bool
__gnu_pbds::detail::pat_trie_base::_Node_citer< Node, Leaf, Head, Inode,
_CIterator, Iterator, _Alloc >::operator== (const _Node_citer< Node,
Leaf, Head, Inode, _CIterator, Iterator, _Alloc > & other) const
[inline]
Compares content to a different iterator object. Positively this time, we love a healthy comparison β¨
valid_prefix
template<typename Node , typename Leaf , typename Head , typename Inode ,
typename _CIterator , typename Iterator , typename _Alloc > std::pair<
a_const_iterator, a_const_iterator >
__gnu_pbds::detail::pat_trie_base::_Node_citer< Node, Leaf, Head, Inode,
_CIterator, Iterator, _Alloc >::valid_prefix () const [inline]
Subtree valid prefix. Returns it as a std::pair< a_const_iterator, a_const_iterator >, because of course it's a pair π
π Author π
Generated automatically by Doxygen for libstdc++ from the source code.
ngl that's the whole page β every typedef, every member function, every protected type, every reference and referenced-by, all accounted for. Nothing cut, nothing invented π
Okurrr that's a wrap bestie π«Ά this gem is page __gnu_pbds::de...rator, _Alloc >(3cxx) from the libstdc++ docs β Doxygen-generated straight from the source code, footer date and all, so go be iconic with your iterators π
π¦ where this page comes from
- debian trixie: libstdc++-12-doc 12.4.0-5
- debian trixie: libstdc++-13-doc 13.3.0-16
- debian trixie: libstdc++-14-doc 14.2.0-19
- ubuntu noble: libstdc++-10-doc 10.5.0-4ubuntu2
- ubuntu noble: libstdc++-10-doc 10.5.0-4ubuntu2.1
- ubuntu noble: libstdc++-11-doc 11.4.0-9ubuntu1
- ubuntu noble: libstdc++-11-doc 11.5.0-1ubuntu1~24.04.1
- ubuntu noble: libstdc++-12-doc 12.3.0-17ubuntu1
- ubuntu noble: libstdc++-12-doc 12.4.0-2ubuntu1~24.04.1
- ubuntu noble: libstdc++-13-doc 13.2.0-23ubuntu4
- ubuntu noble: libstdc++-13-doc 13.3.0-6ubuntu2~24.04.1
- ubuntu noble: libstdc++-14-doc 14-20240412-0ubuntu1
- ubuntu noble: libstdc++-14-doc 14.2.0-4ubuntu2~24.04.1
- ubuntu questing: libstdc++-11-doc 11.5.0-7ubuntu1
- ubuntu questing: libstdc++-11-doc 11.5.0-7ubuntu1.1
- ubuntu questing: libstdc++-12-doc 12.5.0-6ubuntu1
- ubuntu questing: libstdc++-13-doc 13.4.0-4ubuntu1
- ubuntu questing: libstdc++-14-doc 14.3.0-8ubuntu1
- ubuntu questing: libstdc++-15-doc 15.2.0-4ubuntu4
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms