__GNU_PBDS::DETAIL::PAT_TRIE_BASE__ITER(3)
π __gnu_pbds::detail::pat_trie_base::_Iter β NAME π
okay bestie, so this is __gnu_pbds::detail::pat_trie_base::_Iter< Node, Leaf, Head, Inode, Is_Forward_Iterator > and it's literally just... an Iterator. that's the whole name. no notes. it lives in the Library Functions Manual section of the libstdc++ docs and honestly? it's giving internals-only energy. iykyk π¦
β¨ SYNOPSIS β¨
#include <pat_trie_base.hpp>
it Inherits __gnu_pbds::detail::pat_trie_base::_CIter< Node, Leaf, Head, Inode, Is_Forward_Iterator > β so everything the const-iterator mom does, this one's doing too. periodt. π
πΈ Public Types πΈ
all the typedefs, no cap, every single one:
typedef allocator_type _Alloctypedef base_type::allocator_type allocator_typetypedef _CIter< Node, Leaf, Head, Inode, Is_Forward_Iterator > base_typetypedef type_traits::const_pointer const_pointertypedef type_traits::const_reference const_referencetypedef allocator_type::difference_type difference_typetypedef base_type::head_pointer head_pointertypedef Inode::iterator inode_iteratortypedef base_type::inode_pointer inode_pointertypedef std::bidirectional_iterator_tag iterator_categoryβ yup, it goes both ways, forward and back πtypedef base_type::leaf_const_pointer leaf_const_pointertypedef base_type::leaf_pointer leaf_pointertypedef base_type::node_pointer node_pointertypedef type_traits::pointer pointertypedef type_traits::reference referencetypedef base_type::type_traits type_traitstypedef type_traits::value_type value_type
π Public Member Functions π
the whole roster, bestie, we do not skip a single one:
_Iter (const _Iter< Node, Leaf, Head, Inode, !Is_Forward_Iterator > &other)β copy-constructs from the opposite-direction iterator. cute little flip. π_Iter (node_pointer p_nd=0)β construct from a node pointer, defaulting to0.bool operator!= (const _CIter &other) constβ "we are NOT the same" check.bool operator!= (const _CIter< Node, Leaf, Head, Inode, !Is_Forward_Iterator > &other) constβ and the same check against the opposite-direction_CIter.reference operator* () constβ deref, the classic. give me the thing you're pointing at β¨_Iter & operator++ ()β pre-increment, moves forward._Iter operator++ (int)β post-increment, returns the before pic πΈ_Iter & operator-- ()β pre-decrement, goes back._Iter operator-- (int)β post-decrement, returns the before pic again.pointer operator-> () constβ member access, arrow style._Iter & operator= (const _Iter &other)β assignment, same flavor._Iter & operator= (const _Iter< Node, Leaf, Head, Inode, !Is_Forward_Iterator > &other)β assignment but from the opposite-direction iterator.bool operator== (const _CIter &other) constβ twin check πbool operator== (const _CIter< Node, Leaf, Head, Inode, !Is_Forward_Iterator > &other) constβ twin check against the opposite-direction_CIter.
π Public Attributes π
node_pointer m_p_ndβ the node pointer. the main character. the whole reason we're here. π
π Protected Member Functions π
for the internal girlies only:
void dec (false_type)void dec (true_type)void inc (false_type)void inc (true_type)
π«Ά Static Protected Member Functions π«Ά
static, protected, and honestly doing the most:
static node_pointer get_larger_sibling (node_pointer p_nd)static node_pointer get_smaller_sibling (node_pointer p_nd)static leaf_pointer leftmost_descendant (node_pointer p_nd)static leaf_pointer rightmost_descendant (node_pointer p_nd)
π¦ Detailed Description π¦
template<typename Node, typename Leaf, typename Head, typename Inode, bool Is_Forward_Iterator>
class __gnu_pbds::detail::pat_trie_base::_Iter< Node, Leaf, Head, Inode, Is_Forward_Iterator >
"Iterator."
that's it. that's the description. no elaboration, no lore drop, just vibes and the word Iterator. iconic honestly. πβ¨
πΈ Author πΈ
Generated automatically by Doxygen for libstdc++ from the source code.
lowkey nobody hand-wrote this one bestie, the robot did it. π
and that's the whole page fr fr π this little iterator is a std::bidirectional_iterator_tag darling from the libstdc++ crew, docs auto-built by Doxygen, and we are obsessed. go forth and ++ responsibly, bestie. mwah. π
ππ¦
π¦ where this page comes from
- arch rolling: gcc 16.2.1+r23+gd564253eb6c8-1 Β· GPL-3.0-or-later WITH GCC-exception-3.1 AND GFDL-1.3-or-later
- fedora 44: libstdc++-docs 16.0.1-0.10.fc44 Β· GPL-3.0-or-later AND LGPL-3.0-or-later AND (GPL-3.0-or-later WITH GCC-exception-3.1) AND (GPL-3.0-or-later WITH Texinfo-exception) AND (LGPL-2.1-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GNU-compiler-exception) AND BSL-1.0 AND GFDL-1.3-or-later AND Linux-man-pages-copyleft-2-para AND SunPro AND BSD-1-Clause AND BSD-2-Clause AND BSD-2-Clause-Views AND BSD-3-Clause AND BSD-4-Clause AND BSD-Source-Code AND Zlib AND MIT AND Apache-2.0 AND (Apache-2.0 WITH LLVM-Exception) AND ZPL-2.1 AND ISC AND LicenseRef-Fedora-Public-Domain AND HP-1986 AND curl AND Martin-Birgmeier AND HPND-Markus-Kuhn AND dtoa AND SMLNJ AND AMD-newlib AND OAR AND HPND-merchantability-variant AND HPND-Intel
- fedora 44: libstdc++-docs 16.2.1-2.fc44
- fedora 44: libstdc++-docs 16.2.1-3.fc44 Β· GPL-3.0-or-later AND LGPL-3.0-or-later AND (GPL-3.0-or-later WITH GCC-exception-3.1) AND (GPL-3.0-or-later WITH Texinfo-exception) AND (LGPL-2.1-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GNU-compiler-exception) AND BSL-1.0 AND GFDL-1.3-or-later AND Linux-man-pages-copyleft-2-para AND SunPro AND BSD-1-Clause AND BSD-2-Clause AND BSD-2-Clause-Views AND BSD-3-Clause AND BSD-4-Clause AND BSD-Source-Code AND Zlib AND MIT AND Apache-2.0 AND (Apache-2.0 WITH LLVM-Exception) AND ZPL-2.1 AND ISC AND LicenseRef-Fedora-Public-Domain AND HP-1986 AND curl AND Martin-Birgmeier AND HPND-Markus-Kuhn AND dtoa AND SMLNJ AND AMD-newlib AND OAR AND HPND-merchantability-variant AND HPND-Intel
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms