unconstrained_set_of_reference.html 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
  4. <title>unconstrained_set_of Reference</title>
  5. <link rel="stylesheet" href="../../boostbook.css" type="text/css">
  6. <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
  7. <link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.Bimap">
  8. <link rel="up" href="../reference.html" title="Reference">
  9. <link rel="prev" href="vector_of_reference.html" title="vector_of Reference">
  10. <link rel="next" href="../compiler_specifics.html" title="Compiler specifics">
  11. </head>
  12. <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
  13. <table cellpadding="2" width="100%"><tr>
  14. <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
  15. <td align="center"><a href="../../../../../../index.html">Home</a></td>
  16. <td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
  17. <td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
  18. <td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
  19. <td align="center"><a href="../../../../../../more/index.htm">More</a></td>
  20. </tr></table>
  21. <hr>
  22. <div class="spirit-nav">
  23. <a accesskey="p" href="vector_of_reference.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../compiler_specifics.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
  24. </div>
  25. <div class="section">
  26. <div class="titlepage"><div><div><h3 class="title">
  27. <a name="boost_bimap.reference.unconstrained_set_of_reference"></a><a class="link" href="unconstrained_set_of_reference.html" title="unconstrained_set_of Reference">unconstrained_set_of
  28. Reference</a>
  29. </h3></div></div></div>
  30. <div class="toc"><dl class="toc">
  31. <dt><span class="section"><a href="unconstrained_set_of_reference.html#boost_bimap.reference.unconstrained_set_of_reference.header__boost_bimap_unconstrained_set_of_hpp__synopsis">Header
  32. "boost/bimap/unconstrained_set_of.hpp" synopsis</a></span></dt>
  33. <dt><span class="section"><a href="unconstrained_set_of_reference.html#boost_bimap.reference.unconstrained_set_of_reference.unconstrained_set_of_views">unconstrained_set_of
  34. Views</a></span></dt>
  35. <dd><dl>
  36. <dt><span class="section"><a href="unconstrained_set_of_reference.html#boost_bimap.reference.unconstrained_set_of_reference.unconstrained_set_of_views.complexity_signature">Complexity
  37. signature</a></span></dt>
  38. <dt><span class="section"><a href="unconstrained_set_of_reference.html#boost_bimap.reference.unconstrained_set_of_reference.unconstrained_set_of_views.serialization">Serialization</a></span></dt>
  39. </dl></dd>
  40. </dl></div>
  41. <div class="section">
  42. <div class="titlepage"><div><div><h4 class="title">
  43. <a name="boost_bimap.reference.unconstrained_set_of_reference.header__boost_bimap_unconstrained_set_of_hpp__synopsis"></a><a class="link" href="unconstrained_set_of_reference.html#boost_bimap.reference.unconstrained_set_of_reference.header__boost_bimap_unconstrained_set_of_hpp__synopsis" title='Header "boost/bimap/unconstrained_set_of.hpp" synopsis'>Header
  44. "boost/bimap/unconstrained_set_of.hpp" synopsis</a>
  45. </h4></div></div></div>
  46. <pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
  47. <span class="keyword">namespace</span> <span class="identifier">bimaps</span> <span class="special">{</span>
  48. <span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">KeyType</span> <span class="special">&gt;</span>
  49. <span class="keyword">struct</span> <span class="identifier">unconstrained_set_of</span><span class="special">;</span>
  50. <span class="keyword">struct</span> <span class="identifier">unconstrained_set_of_relation</span><span class="special">;</span>
  51. <span class="special">}</span> <span class="comment">// namespace bimap</span>
  52. <span class="special">}</span> <span class="comment">// namespace boost</span>
  53. </pre>
  54. </div>
  55. <div class="section">
  56. <div class="titlepage"><div><div><h4 class="title">
  57. <a name="boost_bimap.reference.unconstrained_set_of_reference.unconstrained_set_of_views"></a><a class="link" href="unconstrained_set_of_reference.html#boost_bimap.reference.unconstrained_set_of_reference.unconstrained_set_of_views" title="unconstrained_set_of Views">unconstrained_set_of
  58. Views</a>
  59. </h4></div></div></div>
  60. <div class="toc"><dl class="toc">
  61. <dt><span class="section"><a href="unconstrained_set_of_reference.html#boost_bimap.reference.unconstrained_set_of_reference.unconstrained_set_of_views.complexity_signature">Complexity
  62. signature</a></span></dt>
  63. <dt><span class="section"><a href="unconstrained_set_of_reference.html#boost_bimap.reference.unconstrained_set_of_reference.unconstrained_set_of_views.serialization">Serialization</a></span></dt>
  64. </dl></div>
  65. <p>
  66. An unconstrained_set_of set view is a view with no constraints. The use
  67. of these kind of view boost the bimap performance but the view can not
  68. be accessed. An unconstrained view is an empty class.
  69. </p>
  70. <pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
  71. <span class="keyword">namespace</span> <span class="identifier">bimaps</span> <span class="special">{</span>
  72. <span class="keyword">namespace</span> <span class="identifier">views</span> <span class="special">{</span>
  73. <span class="keyword">template</span><span class="special">&lt;</span> <span class="emphasis"><em>-implementation defined parameter list-</em></span> <span class="special">&gt;</span>
  74. <span class="keyword">class</span> <span class="emphasis"><em>-implementation defined view name-</em></span>
  75. <span class="special">{</span>
  76. <span class="comment">// Empty view</span>
  77. <span class="special">};</span>
  78. <span class="special">}</span> <span class="comment">// namespace views</span>
  79. <span class="special">}</span> <span class="comment">// namespace bimap</span>
  80. <span class="special">}</span> <span class="comment">// namespace boost</span>
  81. </pre>
  82. <p>
  83. In the case of a <code class="computeroutput"><span class="identifier">bimap</span><span class="special">&lt;</span> <span class="identifier">unconstrained_set_of</span><span class="special">&lt;</span><span class="identifier">Left</span><span class="special">&gt;,</span> <span class="special">...</span> <span class="special">&gt;</span></code>
  84. </p>
  85. <p>
  86. In the set view:
  87. </p>
  88. <pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">signature</span><span class="special">-</span><span class="identifier">compatible</span> <span class="identifier">with</span> <span class="identifier">relation</span><span class="special">&lt;</span> <span class="identifier">Left</span><span class="special">,</span> <span class="special">...</span> <span class="special">&gt;</span> <span class="identifier">key_type</span><span class="special">;</span>
  89. <span class="keyword">typedef</span> <span class="identifier">signature</span><span class="special">-</span><span class="identifier">compatible</span> <span class="identifier">with</span> <span class="identifier">relation</span><span class="special">&lt;</span> <span class="identifier">Left</span><span class="special">,</span> <span class="special">...</span> <span class="special">&gt;</span> <span class="identifier">value_type</span><span class="special">;</span>
  90. </pre>
  91. <p>
  92. In the left map view:
  93. </p>
  94. <pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">Left</span> <span class="identifier">key_type</span><span class="special">;</span>
  95. <span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">mapped_type</span><span class="special">;</span>
  96. <span class="keyword">typedef</span> <span class="identifier">signature</span><span class="special">-</span><span class="identifier">compatible</span> <span class="identifier">with</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span> <span class="identifier">Left</span><span class="special">,</span> <span class="special">...</span> <span class="special">&gt;</span> <span class="identifier">value_type</span><span class="special">;</span>
  97. </pre>
  98. <p>
  99. In the right map view:
  100. </p>
  101. <pre class="programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">key_type</span><span class="special">;</span>
  102. <span class="keyword">typedef</span> <span class="identifier">Left</span> <span class="identifier">mapped_type</span><span class="special">;</span>
  103. <span class="keyword">typedef</span> <span class="identifier">signature</span><span class="special">-</span><span class="identifier">compatible</span> <span class="identifier">with</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span> <span class="special">...</span> <span class="special">,</span> <span class="identifier">Left</span> <span class="special">&gt;</span> <span class="identifier">value_type</span><span class="special">;</span>
  104. </pre>
  105. <div class="section">
  106. <div class="titlepage"><div><div><h5 class="title">
  107. <a name="boost_bimap.reference.unconstrained_set_of_reference.unconstrained_set_of_views.complexity_signature"></a><a name="unconstrained_set_of_complexity_signature"></a><a class="link" href="unconstrained_set_of_reference.html#boost_bimap.reference.unconstrained_set_of_reference.unconstrained_set_of_views.complexity_signature" title="Complexity signature">Complexity
  108. signature</a>
  109. </h5></div></div></div>
  110. <p>
  111. We adopt the scheme outlined in the <a class="link" href="bimap_reference.html#complexity_signature_explanation">complexity
  112. signature section</a>. An unconstrained view can not be accessed by
  113. the user, but the formulas to find the order of an operation for a bimap
  114. hold with the following definitions. The complexity signature of a <code class="computeroutput"><span class="identifier">unconstrained_set_of</span></code> view is:
  115. </p>
  116. <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
  117. <li class="listitem">
  118. copying: <code class="computeroutput"><span class="identifier">c</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">=</span> <span class="number">0</span></code>
  119. </li>
  120. <li class="listitem">
  121. insertion: <code class="computeroutput"><span class="identifier">i</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">=</span> <span class="number">0</span></code>
  122. </li>
  123. <li class="listitem">
  124. hinted insertion: <code class="computeroutput"><span class="identifier">h</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">=</span> <span class="number">0</span></code>
  125. </li>
  126. <li class="listitem">
  127. deletion: <code class="computeroutput"><span class="identifier">d</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">=</span> <span class="number">0</span></code>
  128. </li>
  129. <li class="listitem">
  130. replacement: <code class="computeroutput"><span class="identifier">r</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">=</span> <span class="number">0</span></code>
  131. </li>
  132. <li class="listitem">
  133. modifying: <code class="computeroutput"><span class="identifier">m</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">=</span> <span class="number">0</span></code>
  134. </li>
  135. </ul></div>
  136. </div>
  137. <div class="section">
  138. <div class="titlepage"><div><div><h5 class="title">
  139. <a name="boost_bimap.reference.unconstrained_set_of_reference.unconstrained_set_of_views.serialization"></a><a class="link" href="unconstrained_set_of_reference.html#boost_bimap.reference.unconstrained_set_of_reference.unconstrained_set_of_views.serialization" title="Serialization">Serialization</a>
  140. </h5></div></div></div>
  141. <p>
  142. Views cannot be serialized on their own, but only as part of the <code class="computeroutput"><span class="identifier">bimap</span></code> into which they are embedded.
  143. In describing the additional preconditions and guarantees associated
  144. to <code class="computeroutput"><span class="identifier">list_of</span></code> views with
  145. respect to serialization of their embedding containers, we use the concepts
  146. defined in the <code class="computeroutput"><span class="identifier">bimap</span></code>
  147. serialization section.
  148. </p>
  149. <div class="blurb">
  150. <div class="titlepage"><div><div><p class="title"><b></b></p></div></div></div>
  151. <p>
  152. <span class="bold"><strong>Operation:</strong></span> saving of a <code class="computeroutput"><span class="identifier">bimap</span></code> b to an output archive (XML archive)
  153. ar.
  154. </p>
  155. </div>
  156. <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
  157. <span class="bold"><strong>Requires:</strong></span> No additional requirements
  158. to those imposed by the container.
  159. </li></ul></div>
  160. <div class="blurb">
  161. <div class="titlepage"><div><div><p class="title"><b></b></p></div></div></div>
  162. <p>
  163. <span class="bold"><strong>Operation:</strong></span> loading of a <code class="computeroutput"><span class="identifier">bimap</span></code> b' from an input archive (XML
  164. archive) ar.
  165. </p>
  166. </div>
  167. <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
  168. <span class="bold"><strong>Requires:</strong></span> No additional requirements
  169. to those imposed by the container.
  170. </li></ul></div>
  171. </div>
  172. </div>
  173. </div>
  174. <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
  175. <td align="left"></td>
  176. <td align="right"><div class="copyright-footer">Copyright &#169; 2006-2012 Matias Capeletto<p>
  177. Distributed under the Boost Software License, Version 1.0. (See accompanying
  178. file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
  179. </p>
  180. </div></td>
  181. </tr></table>
  182. <hr>
  183. <div class="spirit-nav">
  184. <a accesskey="p" href="vector_of_reference.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../compiler_specifics.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
  185. </div>
  186. </body>
  187. </html>