1<html> 2<head> 3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 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 1. Boost.Bimap"> 8<link rel="up" href="../index.html" title="Chapter 1. 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 © 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> 161