]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
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. | |
18 | It requires that models order the contained values by their <i>keys</i>, to which | |
19 | values 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 | ||
31 | For a type to model the KeyedUpdatableQueue concept it must have the following members | |
32 | in 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 <class Q> | |
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<Q> )); | |
67 | BOOST_CONCEPT_ASSERT(( ReadWritePropertyMap< key_map, typename Buffer<Q>::value_type > )); | |
68 | } | |
69 | ||
70 | void const_constraints(const Q& cq) { | |
71 | km = cq.keys(); | |
72 | k = get(km, g_ct); | |
73 | } | |
74 | ||
75 | static const typename Buffer<Q>::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 © 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> |