__GNU_PBDS::DETAIL::BIN_SEARCH_TREE_CONST_IT_(3cxx)

πŸ’œ NAME

__gnu_pbds::detail::bin_search_tree_const_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer, Reference, Const_Reference, Is_Forward_Iterator, _Alloc > β€” bestie, this is the Const iterator, straight off the 3cxx manual shelf ✨


🌸 SYNOPSIS

#include <point_iterators.hpp>

Inherited by __gnu_pbds::detail::bin_search_tree_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer, Reference, Const_Reference, Is_Forward_Iterator, _Alloc > β€” so like, the non-const one literally descends from this icon πŸ‘‘

πŸŽ€ Public Types

  • typedef Const_Pointer const_pointer β€” the const-flavoured pointer type, it's giving "look but don't touch" πŸ’…
  • typedef Const_Reference const_reference β€” same energy but a reference, no cap
  • typedef _Alloc::difference_type difference_type β€” the difference type, borrowed straight from _Alloc
  • typedef std::bidirectional_iterator_tag iterator_category β€” okay so it's a bidirectional iterator, meaning it walks both ways, main character energy πŸšΆβ€β™€οΈβ†”οΈπŸšΆβ€β™€οΈ
  • typedef Pointer pointer β€” the pointer type, periodt
  • typedef Reference reference β€” the reference type, iconic
  • typedef Value_Type value_type β€” the value type and yes it's literally just Value_Type

πŸ¦‹ Public Member Functions

  • bin_search_tree_const_it_ (const bin_search_tree_const_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer, Reference, Const_Reference, !Is_Forward_Iterator, _Alloc > &other) β€” converting constructor from the same iterator but with the forward-iterator flag flipped πŸ”„
  • bin_search_tree_const_it_ (const Node_Pointer p_nd=0) β€” constructor that takes a node pointer, and it defaults to 0 if you don't hand it one 🫢
  • bool operator!= (const bin_search_tree_const_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer, Reference, Const_Reference, !Is_Forward_Iterator, _Alloc > &other) const β€” not-equal against the flipped-flag version
  • bool operator!= (const bin_search_tree_const_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer, Reference, Const_Reference, Is_Forward_Iterator, _Alloc > &other) const β€” not-equal against the matching version
  • const_reference operator* () const β€” dereference, gives you a const_reference ⭐
  • bin_search_tree_const_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer, Reference, Const_Reference, Is_Forward_Iterator, _Alloc > & operator++ () β€” prefix increment, returns a reference to yourself (humble? never πŸ’…)
  • bin_search_tree_const_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer, Reference, Const_Reference, Is_Forward_Iterator, _Alloc > operator++ (int) β€” postfix increment, returns a copy instead
  • bin_search_tree_const_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer, Reference, Const_Reference, Is_Forward_Iterator, _Alloc > & operator-- () β€” prefix decrement, back it up bestie
  • bin_search_tree_const_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer, Reference, Const_Reference, Is_Forward_Iterator, _Alloc > operator-- (int) β€” postfix decrement, copy edition
  • const_pointer operator-> () const β€” arrow operator, gives you a const_pointer
  • bin_search_tree_const_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer, Reference, Const_Reference, Is_Forward_Iterator, _Alloc > & operator= (const bin_search_tree_const_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer, Reference, Const_Reference, !Is_Forward_Iterator, _Alloc > &other) β€” assignment from the flipped-flag twin
  • bin_search_tree_const_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer, Reference, Const_Reference, Is_Forward_Iterator, _Alloc > & operator= (const bin_search_tree_const_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer, Reference, Const_Reference, Is_Forward_Iterator, _Alloc > &other) β€” assignment from the exact same type
  • bool operator== (const bin_search_tree_const_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer, Reference, Const_Reference, !Is_Forward_Iterator, _Alloc > &other) const β€” equality check, flipped-flag flavour
  • bool operator== (const bin_search_tree_const_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer, Reference, Const_Reference, Is_Forward_Iterator, _Alloc > &other) const β€” equality check, matching-flag flavour
Not me noticing that half these signatures say !Is_Forward_Iterator and the other half say Is_Forward_Iterator β€” that's not a typo bestie, that's literally what's written πŸ˜­πŸ’€

⭐ Public Attributes

  • Node_Pointer m_p_nd β€” the node pointer, sitting right there in public, living its truth πŸ™ˆ

🧚 Protected Member Functions

  • void dec (false_type) β€” decrement helper, false_type overload
  • void dec (true_type) β€” decrement helper, true_type overload
  • void inc (false_type) β€” increment helper, false_type overload
  • void inc (true_type) β€” increment helper, true_type overload

These four are protected, so they're for the family only, not for you πŸ‘‘πŸ”’


🌈 Detailed Description

template<typename Node_Pointer, typename Value_Type, typename Pointer,
    typename Const_Pointer, typename Reference, typename Const_Reference,
    bool Is_Forward_Iterator, typename _Alloc>
class __gnu_pbds::detail::bin_search_tree_const_it_< Node_Pointer,
Value_Type, Pointer, Const_Pointer, Reference, Const_Reference,
Is_Forward_Iterator, _Alloc >"Const iterator.

That's the whole template signature, verbatim, and yes the class description is literally just "Const iterator." β€” short, sweet, ate πŸ’–


πŸ“ Author

Generated automatically by Doxygen for libstdc++ from the source code. So nobody hand-wrote this one, it's a bot's magnum opus πŸ€–βœ¨


Okay that's the whole page, bestie! This was the 3cxx manual for __gnu_pbds::detail::bin_search_tree_const_it_< Node_Pointer, Value_Type, Pointer, Const_Pointer, Reference, Const_Reference, Is_Forward_Iterator, _Alloc >, auto-generated by Doxygen for libstdc++ β€” go take a vibe check on the rest of the collection, ily, bye πŸ«ΆπŸ’œπŸŽ€