| <!DOCTYPE html> | |
| <!-- | |
| Copyright Daniel Trebbien 2010. | |
| Distributed under the Boost Software License, Version 1.0. | |
| (See accompanying file LICENSE_1_0.txt or the copy at | |
| http://www.boost.org/LICENSE_1_0.txt) | |
| --> | |
| <html> | |
| <head> | |
| <title>KeyedUpdatableQueue</title> | |
| </head> | |
| <body> | |
| <img src="../../../boost.png" alt="C++ Boost"> | |
| <h2><a name="concept:KeyedUpdatableQueue">KeyedUpdatableQueue</a></h2> | |
| <p>A <i>KeyedUpdatableQueue</i> is a refinement of the <a href="./UpdatableQueue.html">UpdatableQueue</a> concept. | |
| It requires that models order the contained values by their <i>keys</i>, to which | |
| values are mapped via a read/write key map. | |
| <h3>Notation</h3> | |
| <table> | |
| <tr> <td> <tt>Q</tt> </td> <td> is a type that models KeyedUpdatableQueue. </td></tr> | |
| <tr> <td> <tt>T</tt> </td> <td> is the value type of <tt>Q</tt>. </td></tr> | |
| </table> | |
| <h3>Members</h3> | |
| For a type to model the KeyedUpdatableQueue concept it must have the following members | |
| in addition to the members that are required of types that model <a href="./UpdatableQueue.html">UpdatableQueue</a>: | |
| <p> | |
| <table border="1"> | |
| <tr> <td><b>Member</b></td> <td><b>Description</b></td> </tr> | |
| <tr> <td> <tt>key_type</tt> </td> | |
| <td> The type of keys that are associated with values </td> | |
| </tr> | |
| <tr> <td> <tt>key_map</tt> </td> | |
| <td> The key property map type. This type must model <a href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write Property Map</a>. </td> | |
| </tr> | |
| <tr> <td> <tt>key_map keys() const</tt> </td> | |
| <td> Returns the key map </td> | |
| </tr> | |
| </table> | |
| <h3>Concept Checking Class</h3> | |
| <p><a href="../../../boost/graph/buffer_concepts.hpp"><tt>boost/graph/buffer_concepts.hpp</tt></a> | |
| <pre> | |
| template <class Q> | |
| struct KeyedUpdatableQueueConcept | |
| { | |
| typedef typename Q::key_type key_type; | |
| typedef typename Q::key_map key_map; | |
| void constraints() { | |
| function_requires< UpdatableQueue<Q> >(); | |
| function_requires< ReadWritePropertyMap< key_map, typename Buffer<Q>::value_type > >(); | |
| } | |
| void const_constraints(const Q& cq) { | |
| km = cq.keys(); | |
| k = get(km, g_ct); | |
| } | |
| static const typename Buffer<Q>::value_type g_ct; | |
| key_type k; | |
| key_map km; | |
| Q q; | |
| }; | |
| </pre> | |
| <h3>Models</h3> | |
| <ul> | |
| <li><tt>boost::d_ary_heap_indirect</tt></a> | |
| </ul> | |
| <br> | |
| <hr> | |
| <table> | |
| <tr> | |
| <td>Copyright © 2010</td> | |
| <td>Daniel Trebbien (<a href="mailto:dtrebbien@gmail.com">dtrebbien@gmail.com</a>) | |
| </td> | |
| </tr> | |
| </table> | |
| </body> | |
| </html> |