Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse > Class Template Reference

A DFS or BFS through a PCTree. More...

#include <ogdf/basic/pctree/PCTreeIterators.h>

Public Types

using difference_type = std::ptrdiff_t
 
using iterator_category = std::input_iterator_tag
 
using pointer = PCNode **
 
using reference = PCNode *&
 
using value_type = PCNode *
 

Public Member Functions

 FilteringPCTreeWalk ()=default
 
 FilteringPCTreeWalk ([[maybe_unused]] const PCTree &T, PCNode *start, std::function< bool(PCNode *)> visit=return_true, std::function< bool(PCNode *)> descend_from=return_true)
 
void append (PCNode *a)
 
FilteringPCTreeWalkbegin ()
 
FilteringPCTreeWalk end () const
 
void next ()
 
 operator bool () const
 
bool operator!= (const FilteringPCTreeWalk &rhs) const
 
PCNodeoperator* ()
 
FilteringPCTreeWalkoperator++ ()
 Increment operator (prefix, returns result). More...
 
FilteringPCTreeWalk operator++ (int)
 Increment operator (postfix, returns previous value). More...
 
bool operator== (const FilteringPCTreeWalk &rhs) const
 
int pendingCount () const
 
PCNodetop ()
 
bool valid () const
 

Static Public Member Functions

static bool return_true ([[maybe_unused]] PCNode *n)
 

Private Types

using container_type = typename std::conditional< dfs, std::vector< PCNode * >, std::deque< PCNode * > >::type
 

Private Attributes

std::function< bool(PCNode *)> m_descend
 
container_type m_pending
 
std::function< bool(PCNode *)> m_visit
 

Detailed Description

template<bool dfs, bool reverse = false>
class ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >

A DFS or BFS through a PCTree.

See also
FilteringBFS

Definition at line 123 of file PCTreeIterators.h.

Member Typedef Documentation

◆ container_type

template<bool dfs, bool reverse = false>
using ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::container_type = typename std::conditional<dfs, std::vector<PCNode*>, std::deque<PCNode*> >::type
private

Definition at line 125 of file PCTreeIterators.h.

◆ difference_type

template<bool dfs, bool reverse = false>
using ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::difference_type = std::ptrdiff_t

Definition at line 135 of file PCTreeIterators.h.

◆ iterator_category

template<bool dfs, bool reverse = false>
using ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::iterator_category = std::input_iterator_tag

Definition at line 133 of file PCTreeIterators.h.

◆ pointer

template<bool dfs, bool reverse = false>
using ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::pointer = PCNode**

Definition at line 136 of file PCTreeIterators.h.

◆ reference

template<bool dfs, bool reverse = false>
using ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::reference = PCNode*&

Definition at line 137 of file PCTreeIterators.h.

◆ value_type

template<bool dfs, bool reverse = false>
using ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::value_type = PCNode*

Definition at line 134 of file PCTreeIterators.h.

Constructor & Destructor Documentation

◆ FilteringPCTreeWalk() [1/2]

template<bool dfs, bool reverse = false>
ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::FilteringPCTreeWalk ( )
explicitdefault

◆ FilteringPCTreeWalk() [2/2]

template<bool dfs, bool reverse = false>
ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::FilteringPCTreeWalk ( [[maybe_unused] ] const PCTree T,
PCNode start,
std::function< bool(PCNode *)>  visit = return_true,
std::function< bool(PCNode *)>  descend_from = return_true 
)
inlineexplicit

Definition at line 143 of file PCTreeIterators.h.

Member Function Documentation

◆ append()

template<bool dfs, bool reverse = false>
void ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::append ( PCNode a)
inline

Definition at line 209 of file PCTreeIterators.h.

◆ begin()

template<bool dfs, bool reverse = false>
FilteringPCTreeWalk& ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::begin ( )
inline

Definition at line 156 of file PCTreeIterators.h.

◆ end()

template<bool dfs, bool reverse = false>
FilteringPCTreeWalk ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::end ( ) const
inline

Definition at line 158 of file PCTreeIterators.h.

◆ next()

template<bool dfs, bool reverse = false>
void ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::next ( )
inline

Definition at line 186 of file PCTreeIterators.h.

◆ operator bool()

template<bool dfs, bool reverse = false>
ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::operator bool ( ) const
inlineexplicit

Definition at line 205 of file PCTreeIterators.h.

◆ operator!=()

template<bool dfs, bool reverse = false>
bool ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::operator!= ( const FilteringPCTreeWalk< dfs, reverse > &  rhs) const
inline

Definition at line 154 of file PCTreeIterators.h.

◆ operator*()

template<bool dfs, bool reverse = false>
PCNode* ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::operator* ( )
inline

Definition at line 169 of file PCTreeIterators.h.

◆ operator++() [1/2]

template<bool dfs, bool reverse = false>
FilteringPCTreeWalk& ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::operator++ ( )
inline

Increment operator (prefix, returns result).

Definition at line 172 of file PCTreeIterators.h.

◆ operator++() [2/2]

template<bool dfs, bool reverse = false>
FilteringPCTreeWalk ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::operator++ ( int  )
inline

Increment operator (postfix, returns previous value).

Deprecated:
"Calling FilteringPCTreeWalk++ will copy the array of pending nodes"

Definition at line 180 of file PCTreeIterators.h.

◆ operator==()

template<bool dfs, bool reverse = false>
bool ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::operator== ( const FilteringPCTreeWalk< dfs, reverse > &  rhs) const
inline

Definition at line 152 of file PCTreeIterators.h.

◆ pendingCount()

template<bool dfs, bool reverse = false>
int ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::pendingCount ( ) const
inline

Definition at line 211 of file PCTreeIterators.h.

◆ return_true()

template<bool dfs, bool reverse = false>
static bool ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::return_true ( [[maybe_unused] ] PCNode n)
inlinestatic

Definition at line 139 of file PCTreeIterators.h.

◆ top()

template<bool dfs, bool reverse = false>
PCNode* ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::top ( )
inline

Definition at line 160 of file PCTreeIterators.h.

◆ valid()

template<bool dfs, bool reverse = false>
bool ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::valid ( ) const
inline

Definition at line 207 of file PCTreeIterators.h.

Member Data Documentation

◆ m_descend

template<bool dfs, bool reverse = false>
std::function<bool(PCNode*)> ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::m_descend
private

Definition at line 129 of file PCTreeIterators.h.

◆ m_pending

template<bool dfs, bool reverse = false>
container_type ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::m_pending
private

Definition at line 127 of file PCTreeIterators.h.

◆ m_visit

template<bool dfs, bool reverse = false>
std::function<bool(PCNode*)> ogdf::pc_tree::FilteringPCTreeWalk< dfs, reverse >::m_visit
private

Definition at line 128 of file PCTreeIterators.h.


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