480 lines
26 KiB
HTML
480 lines
26 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<title>OR-Tools</title>
|
|
<meta http-equiv="Content-Type" content="text/html;"/>
|
|
<meta charset="utf-8"/>
|
|
<!--<link rel='stylesheet' type='text/css' href="https://fonts.googleapis.com/css?family=Ubuntu:400,700,400italic"/>-->
|
|
<link rel="stylesheet" type="text/css" href="ortools.css" title="default" media="screen,print" />
|
|
<script type="text/javascript" src="jquery.js"></script>
|
|
<script type="text/javascript" src="dynsections.js"></script>
|
|
</head>
|
|
<body>
|
|
<div id="banner-container">
|
|
<div id="banner">
|
|
<span id="sfml">OR-Tools 7.2</span>
|
|
</div>
|
|
</div>
|
|
<link rel="icon" href="https://developers.google.com/optimization/images/orLogo.png">
|
|
<div id="content">
|
|
<!-- Generated by Doxygen 1.8.15 -->
|
|
<div id="navrow1" class="tabs">
|
|
<ul class="tablist">
|
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
|
<li><a href="files.html"><span>Files</span></a></li>
|
|
</ul>
|
|
</div>
|
|
<div id="navrow2" class="tabs2">
|
|
<ul class="tablist">
|
|
<li><a href="annotated.html"><span>Class List</span></a></li>
|
|
<li><a href="classes.html"><span>Class Index</span></a></li>
|
|
<li><a href="inherits.html"><span>Class Hierarchy</span></a></li>
|
|
<li><a href="functions.html"><span>Class Members</span></a></li>
|
|
</ul>
|
|
</div>
|
|
</div><!-- top -->
|
|
<div class="header">
|
|
<div class="summary">
|
|
<a href="#pub-methods">Public Member Functions</a> |
|
|
<a href="classConnectedComponentsFinder-members.html">List of all members</a> </div>
|
|
<div class="headertitle">
|
|
<div class="title">ConnectedComponentsFinder< T, CompareOrHashT > Class Template Reference</div> </div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
|
|
<p>Usage: ConnectedComponentsFinder<MyNodeType> cc; cc.AddNode(node1); cc.AddNode(node2); cc.AddEdge(node1, node2); ...
|
|
<a href="classConnectedComponentsFinder.html#details">More...</a></p>
|
|
|
|
<p><code>#include <<a class="el" href="connected__components_8h_source.html">connected_components.h</a>></code></p>
|
|
<table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
|
|
Public Member Functions</h2></td></tr>
|
|
<tr class="memitem:aa669a113d3ee23c506b97949f740b1cc"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classConnectedComponentsFinder.html#aa669a113d3ee23c506b97949f740b1cc">ConnectedComponentsFinder</a> ()</td></tr>
|
|
<tr class="memdesc:aa669a113d3ee23c506b97949f740b1cc"><td class="mdescLeft"> </td><td class="mdescRight">Constructs a connected components finder. <a href="#aa669a113d3ee23c506b97949f740b1cc">More...</a><br /></td></tr>
|
|
<tr class="separator:aa669a113d3ee23c506b97949f740b1cc"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a3985503e0bc5adaeba09484e723378c6"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classConnectedComponentsFinder.html#a3985503e0bc5adaeba09484e723378c6">ConnectedComponentsFinder</a> (const <a class="el" href="classConnectedComponentsFinder.html">ConnectedComponentsFinder</a> &)=delete</td></tr>
|
|
<tr class="separator:a3985503e0bc5adaeba09484e723378c6"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a21da7363443c34ad00c529fae4b3b3e2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classConnectedComponentsFinder.html">ConnectedComponentsFinder</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classConnectedComponentsFinder.html#a21da7363443c34ad00c529fae4b3b3e2">operator=</a> (const <a class="el" href="classConnectedComponentsFinder.html">ConnectedComponentsFinder</a> &)=delete</td></tr>
|
|
<tr class="separator:a21da7363443c34ad00c529fae4b3b3e2"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a93b2c753675c77bfdbc0c33eb582380b"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classConnectedComponentsFinder.html#a93b2c753675c77bfdbc0c33eb582380b">AddNode</a> (T node)</td></tr>
|
|
<tr class="memdesc:a93b2c753675c77bfdbc0c33eb582380b"><td class="mdescLeft"> </td><td class="mdescRight">Adds a node in the graph. <a href="#a93b2c753675c77bfdbc0c33eb582380b">More...</a><br /></td></tr>
|
|
<tr class="separator:a93b2c753675c77bfdbc0c33eb582380b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a77a24beaed190e2f3a0d12662a65b18a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classConnectedComponentsFinder.html#a77a24beaed190e2f3a0d12662a65b18a">AddEdge</a> (T node1, T node2)</td></tr>
|
|
<tr class="memdesc:a77a24beaed190e2f3a0d12662a65b18a"><td class="mdescLeft"> </td><td class="mdescRight">Adds an edge in the graph. <a href="#a77a24beaed190e2f3a0d12662a65b18a">More...</a><br /></td></tr>
|
|
<tr class="separator:a77a24beaed190e2f3a0d12662a65b18a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a67dc34888511ab5b90b7389c90dbc1f8"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classConnectedComponentsFinder.html#a67dc34888511ab5b90b7389c90dbc1f8">Connected</a> (T node1, T node2)</td></tr>
|
|
<tr class="memdesc:a67dc34888511ab5b90b7389c90dbc1f8"><td class="mdescLeft"> </td><td class="mdescRight">Returns true iff both nodes are in the same connected component. <a href="#a67dc34888511ab5b90b7389c90dbc1f8">More...</a><br /></td></tr>
|
|
<tr class="separator:a67dc34888511ab5b90b7389c90dbc1f8"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a7a173636e3dce11a27f2f7121e01a563"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classConnectedComponentsFinder.html#a7a173636e3dce11a27f2f7121e01a563">GetSize</a> (T node)</td></tr>
|
|
<tr class="memdesc:a7a173636e3dce11a27f2f7121e01a563"><td class="mdescLeft"> </td><td class="mdescRight">Finds the connected component containing a node, and returns the total number of nodes in that component. <a href="#a7a173636e3dce11a27f2f7121e01a563">More...</a><br /></td></tr>
|
|
<tr class="separator:a7a173636e3dce11a27f2f7121e01a563"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a9eaa06cffceda90c1d44f550ad3459f3"><td class="memItemLeft" align="right" valign="top">std::vector< std::vector< T > > </td><td class="memItemRight" valign="bottom"><a class="el" href="classConnectedComponentsFinder.html#a9eaa06cffceda90c1d44f550ad3459f3">FindConnectedComponents</a> ()</td></tr>
|
|
<tr class="memdesc:a9eaa06cffceda90c1d44f550ad3459f3"><td class="mdescLeft"> </td><td class="mdescRight">Finds all the connected components and assigns them to components. <a href="#a9eaa06cffceda90c1d44f550ad3459f3">More...</a><br /></td></tr>
|
|
<tr class="separator:a9eaa06cffceda90c1d44f550ad3459f3"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a7f7b2f745e4c87bcaafec8fa295bfa91"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classConnectedComponentsFinder.html#a7f7b2f745e4c87bcaafec8fa295bfa91">FindConnectedComponents</a> (std::vector< typename internal::ConnectedComponentsTypeHelper< T, CompareOrHashT >::Set > *components)</td></tr>
|
|
<tr class="separator:a7f7b2f745e4c87bcaafec8fa295bfa91"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a30350bb98f0e1f7ae47ec1292d253b52"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classConnectedComponentsFinder.html#a30350bb98f0e1f7ae47ec1292d253b52">GetNumberOfComponents</a> () const</td></tr>
|
|
<tr class="memdesc:a30350bb98f0e1f7ae47ec1292d253b52"><td class="mdescLeft"> </td><td class="mdescRight">Returns the current number of connected components. <a href="#a30350bb98f0e1f7ae47ec1292d253b52">More...</a><br /></td></tr>
|
|
<tr class="separator:a30350bb98f0e1f7ae47ec1292d253b52"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a350a0a0790e558f619478ce97c8f2ae7"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classConnectedComponentsFinder.html#a350a0a0790e558f619478ce97c8f2ae7">GetNumberOfNodes</a> () const</td></tr>
|
|
<tr class="memdesc:a350a0a0790e558f619478ce97c8f2ae7"><td class="mdescLeft"> </td><td class="mdescRight">Returns the current number of added distinct nodes. <a href="#a350a0a0790e558f619478ce97c8f2ae7">More...</a><br /></td></tr>
|
|
<tr class="separator:a350a0a0790e558f619478ce97c8f2ae7"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
<div class="textblock"><h3>template<typename T, typename CompareOrHashT = std::less<T>><br />
|
|
class ConnectedComponentsFinder< T, CompareOrHashT ></h3>
|
|
|
|
<p>Usage: ConnectedComponentsFinder<MyNodeType> cc; cc.AddNode(node1); cc.AddNode(node2); cc.AddEdge(node1, node2); ... </p>
|
|
<p>repeating, adding nodes and edges as needed. Adding an edge will automatically also add the two nodes at its ends, if they haven't already been added. std::vector<std::set<MyNodeType> > components; cc.FindConnectedComponents(&components); Each entry in components now contains all the nodes in a single connected component.</p>
|
|
<p>Usage with flat_hash_set: using ConnectedComponentType = flat_hash_set<MyNodeType>; <a class="el" href="classConnectedComponentsFinder.html" title="Usage: ConnectedComponentsFinder<MyNodeType> cc; cc.AddNode(node1); cc.AddNode(node2); cc....">ConnectedComponentsFinder</a><ConnectedComponentType::key_type, ConnectedComponentType::hasher> cc; ... std::vector<ConnectedComponentType> components; cc.FindConnectedComponents(&components);</p>
|
|
<p>If you want to, you can continue adding nodes and edges after calling FindConnectedComponents, then call it again later.</p>
|
|
<p>If your node type isn't STL-friendly, then you can use pointers to it instead: ConnectedComponentsFinder<MySTLUnfriendlyNodeType*> cc; cc.AddNode(&node1); ... and so on... Of course, in this usage, the connected components finder retains these pointers through its lifetime (though it doesn't dereference them). </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="connected__components_8h_source.html#l00189">189</a> of file <a class="el" href="connected__components_8h_source.html">connected_components.h</a>.</p>
|
|
</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
|
|
<a id="aa669a113d3ee23c506b97949f740b1cc"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aa669a113d3ee23c506b97949f740b1cc">◆ </a></span>ConnectedComponentsFinder() <span class="overload">[1/2]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T , typename CompareOrHashT = std::less<T>> </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="classConnectedComponentsFinder.html">ConnectedComponentsFinder</a>< T, CompareOrHashT >::<a class="el" href="classConnectedComponentsFinder.html">ConnectedComponentsFinder</a> </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Constructs a connected components finder. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="connected__components_8h_source.html#l00192">192</a> of file <a class="el" href="connected__components_8h_source.html">connected_components.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a3985503e0bc5adaeba09484e723378c6"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a3985503e0bc5adaeba09484e723378c6">◆ </a></span>ConnectedComponentsFinder() <span class="overload">[2/2]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T , typename CompareOrHashT = std::less<T>> </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="classConnectedComponentsFinder.html">ConnectedComponentsFinder</a>< T, CompareOrHashT >::<a class="el" href="classConnectedComponentsFinder.html">ConnectedComponentsFinder</a> </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="classConnectedComponentsFinder.html">ConnectedComponentsFinder</a>< T, CompareOrHashT > & </td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">delete</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
<h2 class="groupheader">Member Function Documentation</h2>
|
|
<a id="a77a24beaed190e2f3a0d12662a65b18a"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a77a24beaed190e2f3a0d12662a65b18a">◆ </a></span>AddEdge()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T , typename CompareOrHashT = std::less<T>> </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void <a class="el" href="classConnectedComponentsFinder.html">ConnectedComponentsFinder</a>< T, CompareOrHashT >::AddEdge </td>
|
|
<td>(</td>
|
|
<td class="paramtype">T </td>
|
|
<td class="paramname"><em>node1</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">T </td>
|
|
<td class="paramname"><em>node2</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Adds an edge in the graph. </p>
|
|
<p>Also adds both endpoint nodes as necessary. It is not an error to add the same edge twice. Self-edges are OK too. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="connected__components_8h_source.html#l00204">204</a> of file <a class="el" href="connected__components_8h_source.html">connected_components.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a93b2c753675c77bfdbc0c33eb582380b"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a93b2c753675c77bfdbc0c33eb582380b">◆ </a></span>AddNode()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T , typename CompareOrHashT = std::less<T>> </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void <a class="el" href="classConnectedComponentsFinder.html">ConnectedComponentsFinder</a>< T, CompareOrHashT >::AddNode </td>
|
|
<td>(</td>
|
|
<td class="paramtype">T </td>
|
|
<td class="paramname"><em>node</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Adds a node in the graph. </p>
|
|
<p>It is OK to add the same node more than once; additions after the first have no effect. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="connected__components_8h_source.html#l00200">200</a> of file <a class="el" href="connected__components_8h_source.html">connected_components.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a67dc34888511ab5b90b7389c90dbc1f8"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a67dc34888511ab5b90b7389c90dbc1f8">◆ </a></span>Connected()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T , typename CompareOrHashT = std::less<T>> </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool <a class="el" href="classConnectedComponentsFinder.html">ConnectedComponentsFinder</a>< T, CompareOrHashT >::Connected </td>
|
|
<td>(</td>
|
|
<td class="paramtype">T </td>
|
|
<td class="paramname"><em>node1</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">T </td>
|
|
<td class="paramname"><em>node2</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Returns true iff both nodes are in the same connected component. </p>
|
|
<p>Returns false if either node has not been already added with AddNode. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="connected__components_8h_source.html#l00211">211</a> of file <a class="el" href="connected__components_8h_source.html">connected_components.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a9eaa06cffceda90c1d44f550ad3459f3"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a9eaa06cffceda90c1d44f550ad3459f3">◆ </a></span>FindConnectedComponents() <span class="overload">[1/2]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T , typename CompareOrHashT = std::less<T>> </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">std::vector<std::vector<T> > <a class="el" href="classConnectedComponentsFinder.html">ConnectedComponentsFinder</a>< T, CompareOrHashT >::FindConnectedComponents </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Finds all the connected components and assigns them to components. </p>
|
|
<p>Components are ordered in the same way nodes were added, i.e. if node 'b' was added before node 'c', then either:</p><ul>
|
|
<li>'c' belongs to the same component as a node 'a' added before 'b', or</li>
|
|
<li>the component for 'c' comes after the one for 'b'. There are two versions:</li>
|
|
<li>The first one returns the result, and stores each component in a vector. This is the preferred version.</li>
|
|
<li>The second one populates the result, and stores each component in a set. </li>
|
|
</ul>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="connected__components_8h_source.html#l00232">232</a> of file <a class="el" href="connected__components_8h_source.html">connected_components.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a7f7b2f745e4c87bcaafec8fa295bfa91"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a7f7b2f745e4c87bcaafec8fa295bfa91">◆ </a></span>FindConnectedComponents() <span class="overload">[2/2]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T , typename CompareOrHashT = std::less<T>> </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void <a class="el" href="classConnectedComponentsFinder.html">ConnectedComponentsFinder</a>< T, CompareOrHashT >::FindConnectedComponents </td>
|
|
<td>(</td>
|
|
<td class="paramtype">std::vector< typename internal::ConnectedComponentsTypeHelper< T, CompareOrHashT >::Set > * </td>
|
|
<td class="paramname"><em>components</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="connected__components_8h_source.html#l00240">240</a> of file <a class="el" href="connected__components_8h_source.html">connected_components.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a30350bb98f0e1f7ae47ec1292d253b52"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a30350bb98f0e1f7ae47ec1292d253b52">◆ </a></span>GetNumberOfComponents()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T , typename CompareOrHashT = std::less<T>> </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int <a class="el" href="classConnectedComponentsFinder.html">ConnectedComponentsFinder</a>< T, CompareOrHashT >::GetNumberOfComponents </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Returns the current number of connected components. </p>
|
|
<p>This number can change as the new nodes or edges are added. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="connected__components_8h_source.html#l00253">253</a> of file <a class="el" href="connected__components_8h_source.html">connected_components.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a350a0a0790e558f619478ce97c8f2ae7"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a350a0a0790e558f619478ce97c8f2ae7">◆ </a></span>GetNumberOfNodes()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T , typename CompareOrHashT = std::less<T>> </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int <a class="el" href="classConnectedComponentsFinder.html">ConnectedComponentsFinder</a>< T, CompareOrHashT >::GetNumberOfNodes </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Returns the current number of added distinct nodes. </p>
|
|
<p>This includes nodes added explicitly via the calls to <a class="el" href="classConnectedComponentsFinder.html#a93b2c753675c77bfdbc0c33eb582380b" title="Adds a node in the graph.">AddNode()</a> method and implicitly via the calls to <a class="el" href="classConnectedComponentsFinder.html#a77a24beaed190e2f3a0d12662a65b18a" title="Adds an edge in the graph.">AddEdge()</a> method. Nodes that were added several times only count once. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="connected__components_8h_source.html#l00261">261</a> of file <a class="el" href="connected__components_8h_source.html">connected_components.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a7a173636e3dce11a27f2f7121e01a563"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a7a173636e3dce11a27f2f7121e01a563">◆ </a></span>GetSize()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T , typename CompareOrHashT = std::less<T>> </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int <a class="el" href="classConnectedComponentsFinder.html">ConnectedComponentsFinder</a>< T, CompareOrHashT >::GetSize </td>
|
|
<td>(</td>
|
|
<td class="paramtype">T </td>
|
|
<td class="paramname"><em>node</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Finds the connected component containing a node, and returns the total number of nodes in that component. </p>
|
|
<p>Returns zero iff the node has not been already added with AddNode. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="connected__components_8h_source.html#l00219">219</a> of file <a class="el" href="connected__components_8h_source.html">connected_components.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a21da7363443c34ad00c529fae4b3b3e2"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a21da7363443c34ad00c529fae4b3b3e2">◆ </a></span>operator=()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T , typename CompareOrHashT = std::less<T>> </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="classConnectedComponentsFinder.html">ConnectedComponentsFinder</a>& <a class="el" href="classConnectedComponentsFinder.html">ConnectedComponentsFinder</a>< T, CompareOrHashT >::operator= </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="classConnectedComponentsFinder.html">ConnectedComponentsFinder</a>< T, CompareOrHashT > & </td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">delete</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
<hr/>The documentation for this class was generated from the following file:<ul>
|
|
<li><a class="el" href="connected__components_8h_source.html">connected_components.h</a></li>
|
|
</ul>
|
|
</div><!-- contents -->
|
|
</div>
|
|
<div id="footer-container">
|
|
<div id="footer">
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|