Fishnet 2.0.1
Framework for Graph-Based Analysis of GIS Vector Data
Loading...
Searching...
No Matches
fishnet::graph::ConnectedComponents< N, Hash, Equal > Class Template Reference

Search Result for Connected Components. More...

#include <ConnectedComponents.hpp>

Inheritance diagram for fishnet::graph::ConnectedComponents< N, Hash, Equal >:
Collaboration diagram for fishnet::graph::ConnectedComponents< N, Hash, Equal >:

Public Types

using node_type = N
 

Public Member Functions

 ConnectedComponents ()
 
std::vector< std::vector< N > > get () const noexcept
 
std::unordered_map< size_t, std::vector< N > > getAsMap () &noexcept
 Get connected components as a Map: ID -> std::vector<N>
 
std::unordered_map< size_t, std::vector< N > > getAsMap () &&noexcept
 Get connected components as a Map: ID -> std::vector<N>
 
std::unordered_map< N, int, Hash, Equal > nodeMap () const noexcept
 Get connected components as a Map: Node -> component-id.
 
 ~ConnectedComponents ()=default
 

Protected Member Functions

void onComponentOpen (size_t component_index) noexcept override
 
void onComponentClose (size_t component_index) noexcept override
 
void onNodeOpen (const N &node, size_t component_index) noexcept override
 
void onEdgeOpen (const N &from, const N &to, size_t component_index) noexcept override
 

Protected Attributes

std::vector< std::vector< N > > components
 

Detailed Description

template<typename N, util::HashFunction< N > Hash = std::hash<N>, fishnet::util::BiPredicate< N > Equal = std::equal_to<N>>
class fishnet::graph::ConnectedComponents< N, Hash, Equal >

Search Result for Connected Components.

Template Parameters
Nnode type
Hashhasher type on nodes
Equalcomparator type on nodes

Member Typedef Documentation

◆ node_type

template<typename N , util::HashFunction< N > Hash = std::hash<N>, fishnet::util::BiPredicate< N > Equal = std::equal_to<N>>
using fishnet::graph::ConnectedComponents< N, Hash, Equal >::node_type = N

Constructor & Destructor Documentation

◆ ConnectedComponents()

template<typename N , util::HashFunction< N > Hash = std::hash<N>, fishnet::util::BiPredicate< N > Equal = std::equal_to<N>>
fishnet::graph::ConnectedComponents< N, Hash, Equal >::ConnectedComponents ( )
inline

◆ ~ConnectedComponents()

template<typename N , util::HashFunction< N > Hash = std::hash<N>, fishnet::util::BiPredicate< N > Equal = std::equal_to<N>>
fishnet::graph::ConnectedComponents< N, Hash, Equal >::~ConnectedComponents ( )
default

Member Function Documentation

◆ get()

template<typename N , util::HashFunction< N > Hash = std::hash<N>, fishnet::util::BiPredicate< N > Equal = std::equal_to<N>>
std::vector< std::vector< N > > fishnet::graph::ConnectedComponents< N, Hash, Equal >::get ( ) const
inlinenoexcept

◆ getAsMap() [1/2]

template<typename N , util::HashFunction< N > Hash = std::hash<N>, fishnet::util::BiPredicate< N > Equal = std::equal_to<N>>
std::unordered_map< size_t, std::vector< N > > fishnet::graph::ConnectedComponents< N, Hash, Equal >::getAsMap ( ) &&
inlinenoexcept

Get connected components as a Map: ID -> std::vector<N>

Returns
std::unordered_map<size_t,std::vector<N>>

◆ getAsMap() [2/2]

template<typename N , util::HashFunction< N > Hash = std::hash<N>, fishnet::util::BiPredicate< N > Equal = std::equal_to<N>>
std::unordered_map< size_t, std::vector< N > > fishnet::graph::ConnectedComponents< N, Hash, Equal >::getAsMap ( ) &
inlinenoexcept

Get connected components as a Map: ID -> std::vector<N>

Returns
std::unordered_map<size_t,std::vector<N>>

◆ nodeMap()

template<typename N , util::HashFunction< N > Hash = std::hash<N>, fishnet::util::BiPredicate< N > Equal = std::equal_to<N>>
std::unordered_map< N, int, Hash, Equal > fishnet::graph::ConnectedComponents< N, Hash, Equal >::nodeMap ( ) const
inlinenoexcept

Get connected components as a Map: Node -> component-id.

Returns
std::unordered_map<N,int,Hash,Equal> storing for each node the component id as a value

◆ onComponentClose()

template<typename N , util::HashFunction< N > Hash = std::hash<N>, fishnet::util::BiPredicate< N > Equal = std::equal_to<N>>
void fishnet::graph::ConnectedComponents< N, Hash, Equal >::onComponentClose ( size_t  component_index)
inlineoverrideprotectednoexcept

◆ onComponentOpen()

template<typename N , util::HashFunction< N > Hash = std::hash<N>, fishnet::util::BiPredicate< N > Equal = std::equal_to<N>>
void fishnet::graph::ConnectedComponents< N, Hash, Equal >::onComponentOpen ( size_t  component_index)
inlineoverrideprotectednoexcept

◆ onEdgeOpen()

template<typename N , util::HashFunction< N > Hash = std::hash<N>, fishnet::util::BiPredicate< N > Equal = std::equal_to<N>>
void fishnet::graph::ConnectedComponents< N, Hash, Equal >::onEdgeOpen ( const N &  from,
const N &  to,
size_t  component_index 
)
inlineoverrideprotectednoexcept

◆ onNodeOpen()

template<typename N , util::HashFunction< N > Hash = std::hash<N>, fishnet::util::BiPredicate< N > Equal = std::equal_to<N>>
void fishnet::graph::ConnectedComponents< N, Hash, Equal >::onNodeOpen ( const N &  node,
size_t  component_index 
)
inlineoverrideprotectednoexcept

Member Data Documentation

◆ components

template<typename N , util::HashFunction< N > Hash = std::hash<N>, fishnet::util::BiPredicate< N > Equal = std::equal_to<N>>
std::vector<std::vector<N> > fishnet::graph::ConnectedComponents< N, Hash, Equal >::components
protected

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