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 <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>