the_tutorial.html 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
  4. <title>The tutorial</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="../index.html" title="Chapter&#160;1.&#160;Boost.Bimap">
  9. <link rel="prev" href="one_minute_tutorial.html" title="One minute tutorial">
  10. <link rel="next" href="the_tutorial/discovering_the_bimap_framework.html" title="Discovering the bimap framework">
  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="one_minute_tutorial.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.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="the_tutorial/discovering_the_bimap_framework.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
  24. </div>
  25. <div class="section">
  26. <div class="titlepage"><div><div><h2 class="title" style="clear: both">
  27. <a name="boost_bimap.the_tutorial"></a><a class="link" href="the_tutorial.html" title="The tutorial">The tutorial</a>
  28. </h2></div></div></div>
  29. <div class="toc"><dl class="toc">
  30. <dt><span class="section"><a href="the_tutorial.html#boost_bimap.the_tutorial.roadmap">Roadmap</a></span></dt>
  31. <dt><span class="section"><a href="the_tutorial/discovering_the_bimap_framework.html">Discovering
  32. the bimap framework</a></span></dt>
  33. <dd><dl>
  34. <dt><span class="section"><a href="the_tutorial/discovering_the_bimap_framework.html#boost_bimap.the_tutorial.discovering_the_bimap_framework.interpreting_bidirectional_maps">Interpreting
  35. bidirectional maps</a></span></dt>
  36. <dt><span class="section"><a href="the_tutorial/discovering_the_bimap_framework.html#boost_bimap.the_tutorial.discovering_the_bimap_framework.standard_mapping_framework">Standard
  37. mapping framework</a></span></dt>
  38. <dt><span class="section"><a href="the_tutorial/discovering_the_bimap_framework.html#boost_bimap.the_tutorial.discovering_the_bimap_framework.bimap_mapping_framework">Bimap
  39. mapping framework</a></span></dt>
  40. </dl></dd>
  41. <dt><span class="section"><a href="the_tutorial/controlling_collection_types.html">Controlling
  42. collection types</a></span></dt>
  43. <dd><dl>
  44. <dt><span class="section"><a href="the_tutorial/controlling_collection_types.html#boost_bimap.the_tutorial.controlling_collection_types.freedom_of_choice">Freedom
  45. of choice</a></span></dt>
  46. <dt><span class="section"><a href="the_tutorial/controlling_collection_types.html#boost_bimap.the_tutorial.controlling_collection_types.configuration_parameters">Configuration
  47. parameters</a></span></dt>
  48. <dt><span class="section"><a href="the_tutorial/controlling_collection_types.html#boost_bimap.the_tutorial.controlling_collection_types.examples">Examples</a></span></dt>
  49. </dl></dd>
  50. <dt><span class="section"><a href="the_tutorial/the_collection_of_relations_type.html">The
  51. collection of relations type</a></span></dt>
  52. <dd><dl>
  53. <dt><span class="section"><a href="the_tutorial/the_collection_of_relations_type.html#boost_bimap.the_tutorial.the_collection_of_relations_type.a_new_point_of_view">A
  54. new point of view</a></span></dt>
  55. <dt><span class="section"><a href="the_tutorial/the_collection_of_relations_type.html#boost_bimap.the_tutorial.the_collection_of_relations_type.configuration_parameters">Configuration
  56. parameters</a></span></dt>
  57. <dt><span class="section"><a href="the_tutorial/the_collection_of_relations_type.html#boost_bimap.the_tutorial.the_collection_of_relations_type.examples">Examples</a></span></dt>
  58. </dl></dd>
  59. <dt><span class="section"><a href="the_tutorial/differences_with_standard_maps.html">Differences
  60. with standard maps</a></span></dt>
  61. <dd><dl>
  62. <dt><span class="section"><a href="the_tutorial/differences_with_standard_maps.html#boost_bimap.the_tutorial.differences_with_standard_maps.insertion">Insertion</a></span></dt>
  63. <dt><span class="section"><a href="the_tutorial/differences_with_standard_maps.html#boost_bimap.the_tutorial.differences_with_standard_maps.iterator__value_type">iterator::value_type</a></span></dt>
  64. <dt><span class="section"><a href="the_tutorial/differences_with_standard_maps.html#boost_bimap.the_tutorial.differences_with_standard_maps.operator_____and_at__">operator[]
  65. and at()</a></span></dt>
  66. <dt><span class="section"><a href="the_tutorial/differences_with_standard_maps.html#boost_bimap.the_tutorial.differences_with_standard_maps.complexity_of_operations">Complexity
  67. of operations</a></span></dt>
  68. </dl></dd>
  69. <dt><span class="section"><a href="the_tutorial/useful_functions.html">Useful functions</a></span></dt>
  70. <dd><dl>
  71. <dt><span class="section"><a href="the_tutorial/useful_functions.html#boost_bimap.the_tutorial.useful_functions.projection_of_iterators">Projection
  72. of iterators</a></span></dt>
  73. <dt><span class="section"><a href="the_tutorial/useful_functions.html#boost_bimap.the_tutorial.useful_functions.replace_and_modify">replace
  74. and modify</a></span></dt>
  75. <dt><span class="section"><a href="the_tutorial/useful_functions.html#boost_bimap.the_tutorial.useful_functions.retrieval_of_ranges">Retrieval
  76. of ranges</a></span></dt>
  77. </dl></dd>
  78. <dt><span class="section"><a href="the_tutorial/bimaps_with_user_defined_names.html">Bimaps
  79. with user defined names</a></span></dt>
  80. <dt><span class="section"><a href="the_tutorial/unconstrained_sets.html">Unconstrained
  81. Sets</a></span></dt>
  82. <dt><span class="section"><a href="the_tutorial/additional_information.html">Additional
  83. information</a></span></dt>
  84. <dt><span class="section"><a href="the_tutorial/complete_instantiation_scheme.html">Complete
  85. instantiation scheme</a></span></dt>
  86. </dl></div>
  87. <div class="section">
  88. <div class="titlepage"><div><div><h3 class="title">
  89. <a name="boost_bimap.the_tutorial.roadmap"></a><a class="link" href="the_tutorial.html#boost_bimap.the_tutorial.roadmap" title="Roadmap">Roadmap</a>
  90. </h3></div></div></div>
  91. <div class="orderedlist"><ol class="orderedlist" type="1">
  92. <li class="listitem">
  93. Boost.Bimap is intuitive because it is based on the standard template
  94. library. New concepts are however presented to extend the standard maps
  95. to bidirectional maps. The first step is to gain a firm grasp of the
  96. bimap framework. The first section (<a class="link" href="the_tutorial/discovering_the_bimap_framework.html" title="Discovering the bimap framework">Discovering
  97. the bimap framework</a>) aims to explain this.
  98. </li>
  99. <li class="listitem">
  100. Boost.Bimap offers much more than just a one-to-one ordered unique bidirectional
  101. map. It is possible to control the collection type of each side of the
  102. relationship that the bimap represents, giving one-to-many containers,
  103. hashed bidirectional containers and others that may be more suitable
  104. to the the task at hand. The second section (<a class="link" href="the_tutorial/controlling_collection_types.html" title="Controlling collection types">Controlling
  105. collection types</a>) explains how to instantiate a bimap with different
  106. collection constraints.
  107. </li>
  108. <li class="listitem">
  109. The section (<a class="link" href="the_tutorial/the_collection_of_relations_type.html" title="The collection of relations type">The
  110. "collection of relations" type</a>) explains how to create
  111. new types of bidirectional maps using custom collection types.
  112. </li>
  113. <li class="listitem">
  114. In the section <a class="link" href="the_tutorial/differences_with_standard_maps.html" title="Differences with standard maps">Differences
  115. with standard maps</a> we will learn about the subtle differences
  116. between a bimap map view and a standard map.
  117. </li>
  118. <li class="listitem">
  119. The section <a class="link" href="the_tutorial/useful_functions.html" title="Useful functions">Useful
  120. functions</a> provides information about functions of a bimap that
  121. are not found in the STL.
  122. </li>
  123. <li class="listitem">
  124. The types of a bimap can be tagged so that each side is accessible by
  125. something closer to the problem than left and right. This leads to more
  126. readable, self-documenting code. The fourth section (<a class="link" href="the_tutorial/bimaps_with_user_defined_names.html" title="Bimaps with user defined names">Bimaps
  127. with user defined names</a>) shows how to use this feature.
  128. </li>
  129. <li class="listitem">
  130. The bimap mapping framework allows to disable a view of a bimap, including
  131. the standard mapping containers as a particular case. The section <a class="link" href="the_tutorial/unconstrained_sets.html" title="Unconstrained Sets">Unconstrained Sets</a>
  132. explains how they work.
  133. </li>
  134. <li class="listitem">
  135. The section <a class="link" href="the_tutorial/additional_information.html" title="Additional information">Additional
  136. information</a> explains how to attach information to each relation
  137. of a bimap.
  138. </li>
  139. <li class="listitem">
  140. The final section (<a class="link" href="the_tutorial/complete_instantiation_scheme.html" title="Complete instantiation scheme">Complete
  141. Instantiation Scheme</a>) summarizes bimap instantiation and explains
  142. how change the allocator type to be used.
  143. </li>
  144. </ol></div>
  145. </div>
  146. </div>
  147. <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
  148. <td align="left"></td>
  149. <td align="right"><div class="copyright-footer">Copyright &#169; 2006-2012 Matias Capeletto<p>
  150. Distributed under the Boost Software License, Version 1.0. (See accompanying
  151. 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>)
  152. </p>
  153. </div></td>
  154. </tr></table>
  155. <hr>
  156. <div class="spirit-nav">
  157. <a accesskey="p" href="one_minute_tutorial.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.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="the_tutorial/discovering_the_bimap_framework.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
  158. </div>
  159. </body>
  160. </html>