Files
ortools-clone/docs/cpp_graph/graph_8h.html
2021-01-26 11:34:47 +01:00

300 lines
28 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"/>-->
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="styleSheet.tmp.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="banner-container">
<div id="banner">
<span id="sfml">Google OR-Tools 8.2</span>
</div>
</div>
<div id="content" style="width: 100%; overflow: hidden;">
<div style="margin-left: 15px; margin-top: 5px; float: left; color: #145A32;">
<h2>C++ Reference</h2>
<ul>
<li><a href="../cpp_algorithms/annotated.html">Algorithms</a></li>
<li><a href="../cpp_sat/annotated.html">CP-SAT</a></li>
<li><a href="../cpp_graph/annotated.html">Graph</a></li>
<li><a href="../cpp_routing/annotated.html">Routing</a></li>
<li><a href="../cpp_linear/annotated.html">Linear solver</a></li>
</ul>
</div>
<div id="content">
<div align="center">
<h1 style="color: #145A32;">C++ Reference: Graph</h1>
</div>
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('graph_8h.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">graph.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="graph_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutil_1_1_base_graph.html">BaseGraph&lt; NodeIndexType, ArcIndexType, HasReverseArcs &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutil_1_1_list_graph.html">ListGraph&lt; NodeIndexType, ArcIndexType &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutil_1_1_static_graph.html">StaticGraph&lt; NodeIndexType, ArcIndexType &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutil_1_1_reverse_arc_list_graph.html">ReverseArcListGraph&lt; NodeIndexType, ArcIndexType &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutil_1_1_reverse_arc_static_graph.html">ReverseArcStaticGraph&lt; NodeIndexType, ArcIndexType &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutil_1_1_reverse_arc_mixed_graph.html">ReverseArcMixedGraph&lt; NodeIndexType, ArcIndexType &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutil_1_1_s_vector.html">SVector&lt; T &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutil_1_1_list_graph_1_1_outgoing_arc_iterator.html">ListGraph&lt; NodeIndexType, ArcIndexType &gt;::OutgoingArcIterator</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutil_1_1_list_graph_1_1_outgoing_head_iterator.html">ListGraph&lt; NodeIndexType, ArcIndexType &gt;::OutgoingHeadIterator</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutil_1_1_static_graph_1_1_outgoing_arc_iterator.html">StaticGraph&lt; NodeIndexType, ArcIndexType &gt;::OutgoingArcIterator</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutil_1_1_reverse_arc_list_graph_1_1_outgoing_arc_iterator.html">ReverseArcListGraph&lt; NodeIndexType, ArcIndexType &gt;::OutgoingArcIterator</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutil_1_1_reverse_arc_list_graph_1_1_opposite_incoming_arc_iterator.html">ReverseArcListGraph&lt; NodeIndexType, ArcIndexType &gt;::OppositeIncomingArcIterator</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutil_1_1_reverse_arc_list_graph_1_1_incoming_arc_iterator.html">ReverseArcListGraph&lt; NodeIndexType, ArcIndexType &gt;::IncomingArcIterator</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutil_1_1_reverse_arc_list_graph_1_1_outgoing_or_opposite_incoming_arc_iterator.html">ReverseArcListGraph&lt; NodeIndexType, ArcIndexType &gt;::OutgoingOrOppositeIncomingArcIterator</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutil_1_1_reverse_arc_list_graph_1_1_outgoing_head_iterator.html">ReverseArcListGraph&lt; NodeIndexType, ArcIndexType &gt;::OutgoingHeadIterator</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutil_1_1_reverse_arc_static_graph_1_1_outgoing_arc_iterator.html">ReverseArcStaticGraph&lt; NodeIndexType, ArcIndexType &gt;::OutgoingArcIterator</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutil_1_1_reverse_arc_static_graph_1_1_opposite_incoming_arc_iterator.html">ReverseArcStaticGraph&lt; NodeIndexType, ArcIndexType &gt;::OppositeIncomingArcIterator</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutil_1_1_reverse_arc_static_graph_1_1_incoming_arc_iterator.html">ReverseArcStaticGraph&lt; NodeIndexType, ArcIndexType &gt;::IncomingArcIterator</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutil_1_1_reverse_arc_static_graph_1_1_outgoing_or_opposite_incoming_arc_iterator.html">ReverseArcStaticGraph&lt; NodeIndexType, ArcIndexType &gt;::OutgoingOrOppositeIncomingArcIterator</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutil_1_1_reverse_arc_mixed_graph_1_1_outgoing_arc_iterator.html">ReverseArcMixedGraph&lt; NodeIndexType, ArcIndexType &gt;::OutgoingArcIterator</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutil_1_1_reverse_arc_mixed_graph_1_1_opposite_incoming_arc_iterator.html">ReverseArcMixedGraph&lt; NodeIndexType, ArcIndexType &gt;::OppositeIncomingArcIterator</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutil_1_1_reverse_arc_mixed_graph_1_1_incoming_arc_iterator.html">ReverseArcMixedGraph&lt; NodeIndexType, ArcIndexType &gt;::IncomingArcIterator</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutil_1_1_reverse_arc_mixed_graph_1_1_outgoing_or_opposite_incoming_arc_iterator.html">ReverseArcMixedGraph&lt; NodeIndexType, ArcIndexType &gt;::OutgoingOrOppositeIncomingArcIterator</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutil_1_1_complete_graph.html">CompleteGraph&lt; NodeIndexType, ArcIndexType &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutil_1_1_complete_bipartite_graph.html">CompleteBipartiteGraph&lt; NodeIndexType, ArcIndexType &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutil_1_1_complete_bipartite_graph_1_1_outgoing_arc_iterator.html">CompleteBipartiteGraph&lt; NodeIndexType, ArcIndexType &gt;::OutgoingArcIterator</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceutil"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil.html">util</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a48a8a7aa004fc40d0d1d0ba63311cece"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="graph_8h.html#a48a8a7aa004fc40d0d1d0ba63311cece">DEFINE_RANGE_BASED_ARC_ITERATION</a>(c, t, e)</td></tr>
<tr class="separator:a48a8a7aa004fc40d0d1d0ba63311cece"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa560f5e55268f818d5e5f43ed31e19a0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="graph_8h.html#aa560f5e55268f818d5e5f43ed31e19a0">DEFINE_STL_ITERATOR_FUNCTIONS</a>(iterator_class_name)</td></tr>
<tr class="separator:aa560f5e55268f818d5e5f43ed31e19a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a2f76166dbe0c4055a1f256235ad00478"><td class="memItemLeft" align="right" valign="top">typedef ListGraph&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a></td></tr>
<tr class="separator:a2f76166dbe0c4055a1f256235ad00478"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a9470623ca7db3c4a62ce3b326c6b07d8"><td class="memTemplParams" colspan="2">template&lt;class IntVector , class Array , class ElementType &gt; </td></tr>
<tr class="memitem:a9470623ca7db3c4a62ce3b326c6b07d8"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a9470623ca7db3c4a62ce3b326c6b07d8">PermuteWithExplicitElementType</a> (const IntVector &amp;permutation, Array *array_to_permute, ElementType unused)</td></tr>
<tr class="separator:a9470623ca7db3c4a62ce3b326c6b07d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c227a057c1ce9d46b1185abf77ad91e"><td class="memTemplParams" colspan="2">template&lt;class IntVector , class Array &gt; </td></tr>
<tr class="memitem:a8c227a057c1ce9d46b1185abf77ad91e"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a8c227a057c1ce9d46b1185abf77ad91e">Permute</a> (const IntVector &amp;permutation, Array *array_to_permute)</td></tr>
<tr class="separator:a8c227a057c1ce9d46b1185abf77ad91e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac497881c4166bc694adc4bee62746118"><td class="memTemplParams" colspan="2">template&lt;class IntVector &gt; </td></tr>
<tr class="memitem:ac497881c4166bc694adc4bee62746118"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutil.html#ac497881c4166bc694adc4bee62746118">Permute</a> (const IntVector &amp;permutation, std::vector&lt; bool &gt; *array_to_permute)</td></tr>
<tr class="separator:ac497881c4166bc694adc4bee62746118"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a37be0131ae922e30a286797a0bef0c96"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a37be0131ae922e30a286797a0bef0c96">DEFINE_RANGE_BASED_ARC_ITERATION</a> (ListGraph, Outgoing, Base::kNilArc)</td></tr>
<tr class="separator:a37be0131ae922e30a286797a0bef0c96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3c40fc068f645d9dcd15c332e44fc25"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil.html#af3c40fc068f645d9dcd15c332e44fc25">DEFINE_RANGE_BASED_ARC_ITERATION</a> (StaticGraph, Outgoing, DirectArcLimit(node))</td></tr>
<tr class="separator:af3c40fc068f645d9dcd15c332e44fc25"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3098e161a6aceeca482be78d2d221b3b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a3098e161a6aceeca482be78d2d221b3b">DEFINE_RANGE_BASED_ARC_ITERATION</a> (ReverseArcListGraph, Outgoing, Base::kNilArc)</td></tr>
<tr class="separator:a3098e161a6aceeca482be78d2d221b3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d0ae05975a2063f2edbeb749f690fc7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a4d0ae05975a2063f2edbeb749f690fc7">DEFINE_RANGE_BASED_ARC_ITERATION</a> (ReverseArcListGraph, Incoming, Base::kNilArc)</td></tr>
<tr class="separator:a4d0ae05975a2063f2edbeb749f690fc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22b5dcc01043ab8da01ebab71ec3ad31"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a22b5dcc01043ab8da01ebab71ec3ad31">DEFINE_RANGE_BASED_ARC_ITERATION</a> (ReverseArcListGraph, OutgoingOrOppositeIncoming, Base::kNilArc)</td></tr>
<tr class="separator:a22b5dcc01043ab8da01ebab71ec3ad31"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a863ccdb51afb5ef92fe6c94188a5f7e0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a863ccdb51afb5ef92fe6c94188a5f7e0">DEFINE_RANGE_BASED_ARC_ITERATION</a> (ReverseArcListGraph, OppositeIncoming, Base::kNilArc)</td></tr>
<tr class="separator:a863ccdb51afb5ef92fe6c94188a5f7e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2cc2a1037195d237820edc97d35404be"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a2cc2a1037195d237820edc97d35404be">DEFINE_RANGE_BASED_ARC_ITERATION</a> (ReverseArcStaticGraph, Outgoing, DirectArcLimit(node))</td></tr>
<tr class="separator:a2cc2a1037195d237820edc97d35404be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a51d676cd5d9354bfe1f80d09c44f39"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a2a51d676cd5d9354bfe1f80d09c44f39">DEFINE_RANGE_BASED_ARC_ITERATION</a> (ReverseArcStaticGraph, Incoming, ReverseArcLimit(node))</td></tr>
<tr class="separator:a2a51d676cd5d9354bfe1f80d09c44f39"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1db1a919e67261878ff8abda53e664c7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a1db1a919e67261878ff8abda53e664c7">DEFINE_RANGE_BASED_ARC_ITERATION</a> (ReverseArcStaticGraph, OutgoingOrOppositeIncoming, DirectArcLimit(node))</td></tr>
<tr class="separator:a1db1a919e67261878ff8abda53e664c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1728675285eb75f9f18d6ed7c134d0b6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a1728675285eb75f9f18d6ed7c134d0b6">DEFINE_RANGE_BASED_ARC_ITERATION</a> (ReverseArcStaticGraph, OppositeIncoming, ReverseArcLimit(node))</td></tr>
<tr class="separator:a1728675285eb75f9f18d6ed7c134d0b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3308688d13e59e2351bef038ce1fdb0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil.html#ab3308688d13e59e2351bef038ce1fdb0">DEFINE_RANGE_BASED_ARC_ITERATION</a> (ReverseArcMixedGraph, Outgoing, DirectArcLimit(node))</td></tr>
<tr class="separator:ab3308688d13e59e2351bef038ce1fdb0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c022b68f68916770fe09996df2f35a3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a3c022b68f68916770fe09996df2f35a3">DEFINE_RANGE_BASED_ARC_ITERATION</a> (ReverseArcMixedGraph, Incoming, Base::kNilArc)</td></tr>
<tr class="separator:a3c022b68f68916770fe09996df2f35a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97910ddfce7560b406aa3f4939434eb8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a97910ddfce7560b406aa3f4939434eb8">DEFINE_RANGE_BASED_ARC_ITERATION</a> (ReverseArcMixedGraph, OutgoingOrOppositeIncoming, DirectArcLimit(node))</td></tr>
<tr class="separator:a97910ddfce7560b406aa3f4939434eb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ce1a67d16c75b202f56301321a457c6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a6ce1a67d16c75b202f56301321a457c6">DEFINE_RANGE_BASED_ARC_ITERATION</a> (ReverseArcMixedGraph, OppositeIncoming, Base::kNilArc)</td></tr>
<tr class="separator:a6ce1a67d16c75b202f56301321a457c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="a48a8a7aa004fc40d0d1d0ba63311cece"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a48a8a7aa004fc40d0d1d0ba63311cece">&#9670;&nbsp;</a></span>DEFINE_RANGE_BASED_ARC_ITERATION</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DEFINE_RANGE_BASED_ARC_ITERATION</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">c, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">t, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">e&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> NodeIndexType, <span class="keyword">typename</span> ArcIndexType&gt; \</div>
<div class="line"> BeginEndWrapper&lt;typename c&lt;NodeIndexType, ArcIndexType&gt;::t##ArcIterator&gt; \</div>
<div class="line"> c&lt;NodeIndexType, ArcIndexType&gt;::t##Arcs(NodeIndexType node)<span class="keyword"> const </span>{ \</div>
<div class="line"> return BeginEndWrapper&lt;t##ArcIterator&gt;(t##ArcIterator(*<span class="keyword">this</span>, node), \</div>
<div class="line"> t##ArcIterator(*<span class="keyword">this</span>, node, e)); \</div>
<div class="line"> } \</div>
<div class="line"> template &lt;typename NodeIndexType, typename ArcIndexType&gt; \</div>
<div class="line"> BeginEndWrapper&lt;typename c&lt;NodeIndexType, ArcIndexType&gt;::t##ArcIterator&gt; \</div>
<div class="line"> c&lt;NodeIndexType, ArcIndexType&gt;::t##ArcsStartingFrom( \</div>
<div class="line"> NodeIndexType node, ArcIndexType from)<span class="keyword"> const </span>{ \</div>
<div class="line"> return BeginEndWrapper&lt;t##ArcIterator&gt;(t##ArcIterator(*<span class="keyword">this</span>, node, from), \</div>
<div class="line"> t##ArcIterator(*<span class="keyword">this</span>, node, e)); \</div>
<div class="line"> }</div>
</div><!-- fragment -->
<p class="definition">Definition at line <a class="el" href="graph_8h_source.html#l01058">1058</a> of file <a class="el" href="graph_8h_source.html">graph.h</a>.</p>
</div>
</div>
<a id="aa560f5e55268f818d5e5f43ed31e19a0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa560f5e55268f818d5e5f43ed31e19a0">&#9670;&nbsp;</a></span>DEFINE_STL_ITERATOR_FUNCTIONS</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DEFINE_STL_ITERATOR_FUNCTIONS</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">iterator_class_name</td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"> <span class="keyword">using</span> iterator_category = std::input_iterator_tag; \</div>
<div class="line"> using difference_type = ptrdiff_t; \</div>
<div class="line"> using pointer = <span class="keyword">const</span> ArcIndexType*; \</div>
<div class="line"> using reference = <span class="keyword">const</span> ArcIndexType&amp;; \</div>
<div class="line"> using value_type = ArcIndexType; \</div>
<div class="line"> bool operator!=(<span class="keyword">const</span> iterator_class_name&amp; other)<span class="keyword"> const </span>{ \</div>
<div class="line"> return this-&gt;index_ != other.index_; \</div>
<div class="line"> } \</div>
<div class="line"> bool operator==(<span class="keyword">const</span> iterator_class_name&amp; other)<span class="keyword"> const </span>{ \</div>
<div class="line"> return this-&gt;index_ == other.index_; \</div>
<div class="line"> } \</div>
<div class="line"> ArcIndexType operator*()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> this-&gt;Index(); } \</div>
<div class="line"> void operator++() { this-&gt;Next(); }</div>
</div><!-- fragment -->
<p class="definition">Definition at line <a class="el" href="graph_8h_source.html#l01075">1075</a> of file <a class="el" href="graph_8h_source.html">graph.h</a>.</p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
</div>
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>