1<HTML> 2<!-- 3 Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000 4 5 Distributed under the Boost Software License, Version 1.0. 6 (See accompanying file LICENSE_1_0.txt or copy at 7 http://www.boost.org/LICENSE_1_0.txt) 8 --> 9<Head> 10<Title>Boost Graph Library: Graph Traits</Title> 11<BODY BGCOLOR="#ffffff" LINK="#0000ee" TEXT="#000000" VLINK="#551a8b" 12 ALINK="#ff0000"> 13<IMG SRC="../../../boost.png" 14 ALT="C++ Boost" width="277" height="86"> 15 16<BR Clear> 17 18<H1><A NAME=""></A> 19<pre> 20adjacency_list_traits<EdgeList, VertexList, Directed> 21</pre> 22</H1> 23 24This class provides an alternate method for accessing some of the 25associated types of the <tt>adjacency_list</tt> class. The main reason 26for this class is that sometimes one would like to create graph 27properties whose values are vertex or edge descriptors. If you try to 28use <tt>graph_traits</tt> for this you will run into a problem with 29mutually recursive types. To get around this problem, the 30<tt>adjacency_list_traits</tt> class is provided, which gives the user 31access to the vertex and edge descriptor types without requiring the 32user to provide the property types for the graph. 33 34<pre> 35 template <class EdgeList, class VertexList, class Directed> 36 struct adjacency_list_traits { 37 typedef ... vertex_descriptor; 38 typedef ... edge_descriptor; 39 typedef ... directed_category; 40 typedef ... edge_parallel_category; 41 }; 42</pre> 43 44<h3>Where Defined</h3> 45 46<a href="../../../boost/graph/adjacency_list.hpp"><tt>boost/graph/adjacency_list.hpp</tt></a> 47 48<H3>Template Parameters</H3> 49 50<P> 51<TABLE border> 52<TR> 53<th>Parameter</th><th>Description</th><th>Default</th> 54</tr> 55 56<TR><TD><TT>EdgeList</TT></TD> 57<TD> 58The selector type for the edge container implementation. 59</TD> 60<td><tt>vecS</tt></td> 61</TR> 62 63<TR><TD><TT>VertexList</TT></TD> 64<TD> 65The selector type for the vertex container implementation. 66</TD> 67<td><tt>vecS</tt></td> 68</TR> 69 70<TR><TD><TT>Directed</TT></TD> 71<TD> 72The selector type whether the graph is directed or undirected. 73</TD> 74<td><tt>directedS</tt></td> 75</TR> 76 77</table> 78 79<h3>Model of</h3> 80 81<a 82href="http://www.boost.org/sgi/stl/DefaultConstructible.html">DefaultConstructible</a> and 83<a href="http://www.boost.org/sgi/stl/Assignable.html">Assignable</a> 84 85<h3>Type Requirements</h3> 86 87Under construction. 88 89<H2>Members</H2> 90 91<p> 92 93<table border> 94<tr> 95<th>Member</th><th>Description</th> 96</tr> 97 98<tr> 99<td><tt> 100vertex_descriptor 101</tt></td> 102<td> 103The type for the objects used to identify vertices in the graph. 104</td> 105</tr> 106 107<tr> 108<td><tt> 109edge_descriptor 110</tt></td> 111<td> 112The type for the objects used to identify edges in the graph. 113</td> 114</tr> 115 116<tr> 117<td><tt> 118directed_category 119</tt></td> 120<td> 121This says whether the graph is undirected (<tt>undirected_tag</tt>) 122or directed (<tt>directed_tag</tt>). 123</td> 124</tr> 125 126<tr> 127<td><tt> 128edge_parallel_category 129</tt></td> 130<td> 131This says whether the graph allows parallel edges to be inserted 132(<tt>allow_parallel_edge_tag</tt>) or if it automatically removes 133parallel edges (<tt>disallow_parallel_edge_tag</tt>). 134</td> 135</tr> 136 137</table> 138 139<h3>See Also</h3> 140 141<a href="./adjacency_list.html"><tt>adjacency_list</tt></a> 142 143<br> 144<HR> 145<TABLE> 146<TR valign=top> 147<TD nowrap>Copyright © 2000-2001</TD><TD> 148<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, 149Indiana University (<A 150HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br> 151<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br> 152<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>, 153Indiana University (<A 154HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>) 155</TD></TR></TABLE> 156 157</BODY> 158</HTML> 159