]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/graph/doc/MutablePropertyGraph.html
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / graph / doc / MutablePropertyGraph.html
1 <HTML>
2 <!--
3 Copyright (c) Jeremy Siek 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>MutablePropertyGraph</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
19
20 <H2>
21 <A NAME="sec:MutablePropertyGraph"></A>
22 MutablePropertyGraph
23 </H2>
24
25 A MutablePropertyGraph is a <a
26 href="./MutableGraph.html">MutableGraph</a> with properties attached
27 internally to the vertices and edges. When adding vertices and edges
28 the value of the properties can be given.
29
30
31 <H3>Refinement of</H3>
32
33 <a href="./MutableGraph.html">MutableGraph</a> and
34 <a href="./PropertyGraph.html">PropertyGraph</a>
35
36 <H3>Notation</H3>
37
38
39 <TABLE>
40
41 <TR>
42 <TD><tt>G</tt></TD>
43 <TD>A type that is a model of Graph.</TD>
44 </TR>
45
46 <TR>
47 <TD><tt>g</tt></TD>
48 <TD>An object of type <tt>G</tt>.</TD>
49 </TR>
50
51 <TR>
52 <TD><tt>e</tt></TD>
53 <TD>An object of type <tt>boost::graph_traits&lt;G&gt;::edge_descriptor</tt>.</TD>
54 </TR>
55
56 <TR>
57 <TD><tt>u,v</tt></TD>
58 <TD>are objects of type <tt>boost::graph_traits&lt;G&gt;::vertex_descriptor</tt>.</TD>
59 </TR>
60
61 <TR>
62 <TD><TT>ep</TT></TD><TD>is an object of type <TT>G::edge_property_type</TT></TD>
63 </TR>
64
65 <TR>
66 <TD><TT>vp</TT></TD><TD>is an object of type <TT>G::vertex_property_type</TT></TD>
67 </TR>
68
69 </TABLE>
70
71 <P>
72
73 <H3>Associated Types</H3>
74
75 <table border>
76
77 <tr>
78 <td>Edge Property Type </td>
79 <td><TT>graph_traits&lt;G&gt;::edge_property_type</TT></td>
80 </tr>
81
82 <tr>
83 <td>Vertex Property Type </td>
84 <td><TT>graph_traits&lt;G&gt;::vertex_property_type</TT> </td>
85 </tr>
86
87 </table>
88
89 <H3>Valid Expressions</h3>
90
91 <table border>
92
93 <tr>
94 <TD><TT>add_edge(u,&nbsp;v,&nbsp;ep,&nbsp;g)</TT></TD>
95 <TD>Inserts the edge <i>(u,v)</i> into the graph, and
96 copies object <TT>ep</TT> into the property for that edge.<br>
97 Return type: <TT>std::pair&lt;edge_descriptor, bool&gt;</TT></TD>
98 </TR>
99
100 <tr>
101 <TD><TT>add_vertex(vp,&nbsp;g)</TT></TD>
102 <TD>
103 Add a new vertex to the graph and copy <TT>vp</TT> into the
104 property for the new vertex. The <TT>vertex_descriptor</TT> for the new
105 vertex is returned.<br>
106 Return type: <TT>vertex_descriptor</TT>
107 </TD>
108 </TR>
109
110 </TABLE>
111
112
113 <H3>Models</H3>
114
115 <UL>
116 <LI><TT>adjacency_list</TT></LI>
117 </UL>
118
119 <H3>Concept Checking Class</H3>
120
121 <P>
122 <PRE>
123 template &lt;class G&gt;
124 struct MutablePropertyGraphConcept
125 {
126 typedef typename boost::graph_traits&lt;G&gt;::edge_descriptor edge_descriptor;
127 void constraints() {
128 BOOST_CONCEPT_ASSERT(( MutableGraphConcept&lt;G&gt; ));
129 v = add_vertex(vp, g);
130 p = add_edge(u, v, ep, g);
131 }
132 G g;
133 std::pair&lt;edge_descriptor, bool&gt; p;
134 typename boost::graph_traits&lt;G&gt;::vertex_descriptor u, v;
135 typename boost::graph_traits&lt;G&gt;::vertex_property_type vp;
136 typename boost::graph_traits&lt;G&gt;::edge_property_type ep;
137 };
138 </PRE>
139
140
141 <br>
142 <HR>
143 <TABLE>
144 <TR valign=top>
145 <TD nowrap>Copyright &copy; 2000-2001</TD><TD>
146 <A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
147 </TD></TR></TABLE>
148
149 </BODY>
150 </HTML>