• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<!DOCTYPE html>
2<!--
3            Copyright Daniel Trebbien 2010.
4 Distributed under the Boost Software License, Version 1.0.
5   (See accompanying file LICENSE_1_0.txt or the copy at
6         http://www.boost.org/LICENSE_1_0.txt)
7-->
8<html>
9<head>
10<title>KeyedUpdatableQueue</title>
11</head>
12<body>
13<img src="../../../boost.png"  alt="C++ Boost">
14
15<h2><a name="concept:KeyedUpdatableQueue">KeyedUpdatableQueue</a></h2>
16
17<p>A <i>KeyedUpdatableQueue</i> is a refinement of the <a href="./UpdatableQueue.html">UpdatableQueue</a> concept.
18It requires that models order the contained values by their <i>keys</i>, to which
19values are mapped via a read/write key map.
20
21<h3>Notation</h3>
22
23<table>
24<tr> <td> <tt>Q</tt> </td>  <td> is a type that models KeyedUpdatableQueue.       </td></tr>
25<tr> <td> <tt>T</tt> </td>  <td> is the value type of <tt>Q</tt>. </td></tr>
26</table>
27
28
29<h3>Members</h3>
30
31For a type to model the KeyedUpdatableQueue concept it must have the following members
32in addition to the members that are required of types that model <a href="./UpdatableQueue.html">UpdatableQueue</a>:
33
34<p>
35
36<table border="1">
37
38<tr> <td><b>Member</b></td> <td><b>Description</b></td> </tr>
39
40<tr> <td> <tt>key_type</tt> </td>
41     <td> The type of keys that are associated with values </td>
42     </tr>
43
44<tr> <td> <tt>key_map</tt> </td>
45     <td> The key property map type. This type must model <a href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write Property Map</a>. </td>
46     </tr>
47
48<tr> <td> <tt>key_map keys() const</tt> </td>
49     <td> Returns the key map </td>
50     </tr>
51
52</table>
53
54<h3>Concept Checking Class</h3>
55
56<p><a href="../../../boost/graph/buffer_concepts.hpp"><tt>boost/graph/buffer_concepts.hpp</tt></a>
57
58<pre>
59  template &lt;class Q&gt;
60  struct KeyedUpdatableQueueConcept
61  {
62    typedef typename Q::key_type key_type;
63    typedef typename Q::key_map key_map;
64
65    void constraints() {
66      BOOST_CONCEPT_ASSERT(( UpdatableQueue&lt;Q&gt; ));
67      BOOST_CONCEPT_ASSERT(( ReadWritePropertyMap&lt; key_map, typename Buffer&lt;Q&gt;::value_type &gt; ));
68    }
69
70    void const_constraints(const Q&amp; cq) {
71      km = cq.keys();
72      k = get(km, g_ct);
73    }
74
75    static const typename Buffer&lt;Q&gt;::value_type g_ct;
76    key_type k;
77    key_map km;
78    Q q;
79  };
80</pre>
81
82<h3>Models</h3>
83
84<ul>
85<li><tt>boost::d_ary_heap_indirect</tt></a>
86</ul>
87
88<br>
89<hr>
90<table>
91<tr>
92<td>Copyright&nbsp;&copy;&nbsp;2010</td>
93<td>Daniel Trebbien (<a href="mailto:dtrebbien@gmail.com">dtrebbien@gmail.com</a>)
94</td>
95</tr>
96</table>
97
98</body>
99</html>