neoGFX
Cross-platform C++ app/game engine
Loading...
Searching...
No Matches
neolib::segmented_tree< T, N, Alloc >::basic_iterator< Type > Class Template Reference

#include <segmented_tree.hpp>

Public Types

typedef std::bidirectional_iterator_tag iterator_category
 
typedef tree_type::value_type value_type
 
typedef tree_type::difference_type difference_type
 
typedef tree_type::pointer pointer
 
typedef tree_type::reference reference
 

Public Member Functions

 basic_iterator ()
 
 basic_iterator (node &parentNode, node_child_list_iterator childIterator)
 
template<iterator_type Type2>
 basic_iterator (basic_iterator< Type2 > const &other)
 
template<iterator_type Type2>
bool operator== (basic_iterator< Type2 > const &other) const
 
template<iterator_type Type2>
bool operator!= (basic_iterator< Type2 > const &other) const
 
self_type & operator++ ()
 
self_type operator++ (int) const
 
self_type & operator-- ()
 
self_type operator-- (int) const
 
reference operator* () const
 
pointer operator-> () const
 
basic_const_iterator< iterator_type::Siblingcparent () const
 
basic_const_iterator< iterator_type::Siblingparent () const
 
basic_iterator< iterator_type::Siblingparent ()
 
basic_const_iterator< iterator_type::Siblingcbegin () const
 
basic_const_iterator< iterator_type::Siblingbegin () const
 
basic_iterator< iterator_type::Siblingbegin ()
 
basic_const_iterator< iterator_type::Siblingcend () const
 
basic_const_iterator< iterator_type::Siblingend () const
 
basic_iterator< iterator_type::Siblingend ()
 
std::reverse_iterator< basic_const_iterator< iterator_type::Sibling > > crbegin () const
 
std::reverse_iterator< basic_const_iterator< iterator_type::Sibling > > rbegin () const
 
std::reverse_iterator< basic_iterator< iterator_type::Sibling > > rbegin ()
 
std::reverse_iterator< basic_const_iterator< iterator_type::Sibling > > crend () const
 
std::reverse_iterator< basic_const_iterator< iterator_type::Sibling > > rend () const
 
std::reverse_iterator< basic_iterator< iterator_type::Sibling > > rend ()
 
bool parent_is_root () const
 
std::size_t depth () const
 
std::size_t descendent_count () const
 
bool children_skipped () const
 
void skip_children ()
 
void unskip_children ()
 

Friends

class segmented_tree< T, N, Alloc >
 

Detailed Description

template<typename T, size_t N = 64, typename Alloc = std::allocator<T>>
template<iterator_type Type>
class neolib::segmented_tree< T, N, Alloc >::basic_iterator< Type >

Definition at line 265 of file segmented_tree.hpp.

Member Typedef Documentation

◆ difference_type

template<typename T , size_t N = 64, typename Alloc = std::allocator<T>>
template<iterator_type Type>
typedef tree_type::difference_type neolib::segmented_tree< T, N, Alloc >::basic_iterator< Type >::difference_type

Definition at line 272 of file segmented_tree.hpp.

◆ iterator_category

template<typename T , size_t N = 64, typename Alloc = std::allocator<T>>
template<iterator_type Type>
typedef std::bidirectional_iterator_tag neolib::segmented_tree< T, N, Alloc >::basic_iterator< Type >::iterator_category

Definition at line 270 of file segmented_tree.hpp.

◆ pointer

template<typename T , size_t N = 64, typename Alloc = std::allocator<T>>
template<iterator_type Type>
typedef tree_type::pointer neolib::segmented_tree< T, N, Alloc >::basic_iterator< Type >::pointer

Definition at line 273 of file segmented_tree.hpp.

◆ reference

template<typename T , size_t N = 64, typename Alloc = std::allocator<T>>
template<iterator_type Type>
typedef tree_type::reference neolib::segmented_tree< T, N, Alloc >::basic_iterator< Type >::reference

Definition at line 274 of file segmented_tree.hpp.

◆ value_type

template<typename T , size_t N = 64, typename Alloc = std::allocator<T>>
template<iterator_type Type>
typedef tree_type::value_type neolib::segmented_tree< T, N, Alloc >::basic_iterator< Type >::value_type

Definition at line 271 of file segmented_tree.hpp.

Constructor & Destructor Documentation

◆ basic_iterator() [1/3]

template<typename T , size_t N = 64, typename Alloc = std::allocator<T>>
template<iterator_type Type>
neolib::segmented_tree< T, N, Alloc >::basic_iterator< Type >::basic_iterator ( )
inline

Definition at line 276 of file segmented_tree.hpp.

◆ basic_iterator() [2/3]

template<typename T , size_t N = 64, typename Alloc = std::allocator<T>>
template<iterator_type Type>
neolib::segmented_tree< T, N, Alloc >::basic_iterator< Type >::basic_iterator ( node &  parentNode,
node_child_list_iterator  childIterator 
)
inline

Definition at line 277 of file segmented_tree.hpp.

◆ basic_iterator() [3/3]

template<typename T , size_t N = 64, typename Alloc = std::allocator<T>>
template<iterator_type Type>
template<iterator_type Type2>
neolib::segmented_tree< T, N, Alloc >::basic_iterator< Type >::basic_iterator ( basic_iterator< Type2 > const other)
inline

Definition at line 279 of file segmented_tree.hpp.

Member Function Documentation

◆ begin() [1/2]

template<typename T , size_t N = 64, typename Alloc = std::allocator<T>>
template<iterator_type Type>
basic_iterator< iterator_type::Sibling > neolib::segmented_tree< T, N, Alloc >::basic_iterator< Type >::begin ( )
inline

Definition at line 368 of file segmented_tree.hpp.

◆ begin() [2/2]

template<typename T , size_t N = 64, typename Alloc = std::allocator<T>>
template<iterator_type Type>
basic_const_iterator< iterator_type::Sibling > neolib::segmented_tree< T, N, Alloc >::basic_iterator< Type >::begin ( ) const
inline

Definition at line 364 of file segmented_tree.hpp.

◆ cbegin()

template<typename T , size_t N = 64, typename Alloc = std::allocator<T>>
template<iterator_type Type>
basic_const_iterator< iterator_type::Sibling > neolib::segmented_tree< T, N, Alloc >::basic_iterator< Type >::cbegin ( ) const
inline

Definition at line 360 of file segmented_tree.hpp.

◆ cend()

template<typename T , size_t N = 64, typename Alloc = std::allocator<T>>
template<iterator_type Type>
basic_const_iterator< iterator_type::Sibling > neolib::segmented_tree< T, N, Alloc >::basic_iterator< Type >::cend ( ) const
inline

Definition at line 372 of file segmented_tree.hpp.

◆ children_skipped()

template<typename T , size_t N = 64, typename Alloc = std::allocator<T>>
template<iterator_type Type>
bool neolib::segmented_tree< T, N, Alloc >::basic_iterator< Type >::children_skipped ( ) const
inline

Definition at line 421 of file segmented_tree.hpp.

◆ cparent()

template<typename T , size_t N = 64, typename Alloc = std::allocator<T>>
template<iterator_type Type>
basic_const_iterator< iterator_type::Sibling > neolib::segmented_tree< T, N, Alloc >::basic_iterator< Type >::cparent ( ) const
inline

Definition at line 348 of file segmented_tree.hpp.

◆ crbegin()

template<typename T , size_t N = 64, typename Alloc = std::allocator<T>>
template<iterator_type Type>
std::reverse_iterator< basic_const_iterator< iterator_type::Sibling > > neolib::segmented_tree< T, N, Alloc >::basic_iterator< Type >::crbegin ( ) const
inline

Definition at line 384 of file segmented_tree.hpp.

◆ crend()

template<typename T , size_t N = 64, typename Alloc = std::allocator<T>>
template<iterator_type Type>
std::reverse_iterator< basic_const_iterator< iterator_type::Sibling > > neolib::segmented_tree< T, N, Alloc >::basic_iterator< Type >::crend ( ) const
inline

Definition at line 396 of file segmented_tree.hpp.

◆ depth()

template<typename T , size_t N = 64, typename Alloc = std::allocator<T>>
template<iterator_type Type>
std::size_t neolib::segmented_tree< T, N, Alloc >::basic_iterator< Type >::depth ( ) const
inline

Definition at line 413 of file segmented_tree.hpp.

◆ descendent_count()

template<typename T , size_t N = 64, typename Alloc = std::allocator<T>>
template<iterator_type Type>
std::size_t neolib::segmented_tree< T, N, Alloc >::basic_iterator< Type >::descendent_count ( ) const
inline

Definition at line 417 of file segmented_tree.hpp.

◆ end() [1/2]

template<typename T , size_t N = 64, typename Alloc = std::allocator<T>>
template<iterator_type Type>
basic_iterator< iterator_type::Sibling > neolib::segmented_tree< T, N, Alloc >::basic_iterator< Type >::end ( )
inline

Definition at line 380 of file segmented_tree.hpp.

◆ end() [2/2]

template<typename T , size_t N = 64, typename Alloc = std::allocator<T>>
template<iterator_type Type>
basic_const_iterator< iterator_type::Sibling > neolib::segmented_tree< T, N, Alloc >::basic_iterator< Type >::end ( ) const
inline

Definition at line 376 of file segmented_tree.hpp.

◆ operator!=()

template<typename T , size_t N = 64, typename Alloc = std::allocator<T>>
template<iterator_type Type>
template<iterator_type Type2>
bool neolib::segmented_tree< T, N, Alloc >::basic_iterator< Type >::operator!= ( basic_iterator< Type2 > const other) const
inline

Definition at line 287 of file segmented_tree.hpp.

◆ operator*()

template<typename T , size_t N = 64, typename Alloc = std::allocator<T>>
template<iterator_type Type>
reference neolib::segmented_tree< T, N, Alloc >::basic_iterator< Type >::operator* ( ) const
inline

Definition at line 339 of file segmented_tree.hpp.

◆ operator++() [1/2]

template<typename T , size_t N = 64, typename Alloc = std::allocator<T>>
template<iterator_type Type>
self_type & neolib::segmented_tree< T, N, Alloc >::basic_iterator< Type >::operator++ ( )
inline

Definition at line 292 of file segmented_tree.hpp.

◆ operator++() [2/2]

template<typename T , size_t N = 64, typename Alloc = std::allocator<T>>
template<iterator_type Type>
self_type neolib::segmented_tree< T, N, Alloc >::basic_iterator< Type >::operator++ ( int  ) const
inline

Definition at line 309 of file segmented_tree.hpp.

◆ operator--() [1/2]

template<typename T , size_t N = 64, typename Alloc = std::allocator<T>>
template<iterator_type Type>
self_type & neolib::segmented_tree< T, N, Alloc >::basic_iterator< Type >::operator-- ( )
inline

Definition at line 315 of file segmented_tree.hpp.

◆ operator--() [2/2]

template<typename T , size_t N = 64, typename Alloc = std::allocator<T>>
template<iterator_type Type>
self_type neolib::segmented_tree< T, N, Alloc >::basic_iterator< Type >::operator-- ( int  ) const
inline

Definition at line 332 of file segmented_tree.hpp.

◆ operator->()

template<typename T , size_t N = 64, typename Alloc = std::allocator<T>>
template<iterator_type Type>
pointer neolib::segmented_tree< T, N, Alloc >::basic_iterator< Type >::operator-> ( ) const
inline

Definition at line 343 of file segmented_tree.hpp.

◆ operator==()

template<typename T , size_t N = 64, typename Alloc = std::allocator<T>>
template<iterator_type Type>
template<iterator_type Type2>
bool neolib::segmented_tree< T, N, Alloc >::basic_iterator< Type >::operator== ( basic_iterator< Type2 > const other) const
inline

Definition at line 282 of file segmented_tree.hpp.

◆ parent() [1/2]

template<typename T , size_t N = 64, typename Alloc = std::allocator<T>>
template<iterator_type Type>
basic_iterator< iterator_type::Sibling > neolib::segmented_tree< T, N, Alloc >::basic_iterator< Type >::parent ( )
inline

Definition at line 356 of file segmented_tree.hpp.

◆ parent() [2/2]

template<typename T , size_t N = 64, typename Alloc = std::allocator<T>>
template<iterator_type Type>
basic_const_iterator< iterator_type::Sibling > neolib::segmented_tree< T, N, Alloc >::basic_iterator< Type >::parent ( ) const
inline

Definition at line 352 of file segmented_tree.hpp.

◆ parent_is_root()

template<typename T , size_t N = 64, typename Alloc = std::allocator<T>>
template<iterator_type Type>
bool neolib::segmented_tree< T, N, Alloc >::basic_iterator< Type >::parent_is_root ( ) const
inline

Definition at line 409 of file segmented_tree.hpp.

◆ rbegin() [1/2]

template<typename T , size_t N = 64, typename Alloc = std::allocator<T>>
template<iterator_type Type>
std::reverse_iterator< basic_iterator< iterator_type::Sibling > > neolib::segmented_tree< T, N, Alloc >::basic_iterator< Type >::rbegin ( )
inline

Definition at line 392 of file segmented_tree.hpp.

◆ rbegin() [2/2]

template<typename T , size_t N = 64, typename Alloc = std::allocator<T>>
template<iterator_type Type>
std::reverse_iterator< basic_const_iterator< iterator_type::Sibling > > neolib::segmented_tree< T, N, Alloc >::basic_iterator< Type >::rbegin ( ) const
inline

Definition at line 388 of file segmented_tree.hpp.

◆ rend() [1/2]

template<typename T , size_t N = 64, typename Alloc = std::allocator<T>>
template<iterator_type Type>
std::reverse_iterator< basic_iterator< iterator_type::Sibling > > neolib::segmented_tree< T, N, Alloc >::basic_iterator< Type >::rend ( )
inline

Definition at line 404 of file segmented_tree.hpp.

◆ rend() [2/2]

template<typename T , size_t N = 64, typename Alloc = std::allocator<T>>
template<iterator_type Type>
std::reverse_iterator< basic_const_iterator< iterator_type::Sibling > > neolib::segmented_tree< T, N, Alloc >::basic_iterator< Type >::rend ( ) const
inline

Definition at line 400 of file segmented_tree.hpp.

◆ skip_children()

template<typename T , size_t N = 64, typename Alloc = std::allocator<T>>
template<iterator_type Type>
void neolib::segmented_tree< T, N, Alloc >::basic_iterator< Type >::skip_children ( )
inline

Definition at line 425 of file segmented_tree.hpp.

◆ unskip_children()

template<typename T , size_t N = 64, typename Alloc = std::allocator<T>>
template<iterator_type Type>
void neolib::segmented_tree< T, N, Alloc >::basic_iterator< Type >::unskip_children ( )
inline

Definition at line 429 of file segmented_tree.hpp.

Friends And Related Symbol Documentation

◆ segmented_tree< T, N, Alloc >

template<typename T , size_t N = 64, typename Alloc = std::allocator<T>>
template<iterator_type Type>
friend class segmented_tree< T, N, Alloc >
friend

Definition at line 267 of file segmented_tree.hpp.


The documentation for this class was generated from the following file: