• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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