2
0
mirror of https://github.com/boostorg/bimap.git synced 2026-01-19 04:02:10 +00:00

Merge [57804] - rebuilt documentation.

[SVN r57806]
This commit is contained in:
Daniel James
2009-11-20 09:53:08 +00:00
parent 10e7b1ae59
commit 60dab6da41
40 changed files with 1562 additions and 1804 deletions

View File

@@ -3,8 +3,8 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Acknowledgements</title>
<link rel="stylesheet" href="../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../index.html" title="Chapter 1. Boost.Bimap">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../index.html" title="Chapter 1. Boost.Bimap">
<link rel="up" href="../index.html" title="Chapter 1. Boost.Bimap">
<link rel="prev" href="history/multiindex_and_bimap.html" title="MultiIndex and Bimap">
</head>
@@ -13,15 +13,15 @@
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="history/multiindex_and_bimap.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a>
</div>
<div class="section" lang="en">
<div class="section" title="Acknowledgements">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_bimap.acknowledgements"></a><a class="link" href="acknowledgements.html" title="Acknowledgements">Acknowledgements</a>
</h2></div></div></div>
@@ -71,7 +71,7 @@
a lot to Ion Gaztañaga for managing the review.
</p>
<a name="boost_bimap.acknowledgements.boost_bimap_team"></a><h4>
<a name="id2755679"></a>
<a name="id672804"></a>
<a class="link" href="acknowledgements.html#boost_bimap.acknowledgements.boost_bimap_team">Boost.Bimap Team</a>
</h4>
<p>

View File

@@ -3,8 +3,8 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Bimap and Boost</title>
<link rel="stylesheet" href="../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../index.html" title="Chapter 1. Boost.Bimap">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../index.html" title="Chapter 1. Boost.Bimap">
<link rel="up" href="../index.html" title="Chapter 1. Boost.Bimap">
<link rel="prev" href="the_tutorial/complete_instantiation_scheme.html" title="Complete instantiation scheme">
<link rel="next" href="bimap_and_boost/boost_libraries_that_work_well_with_boost_bimap.html" title="Boost Libraries that work well with Boost.Bimap">
@@ -14,15 +14,15 @@
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="the_tutorial/complete_instantiation_scheme.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="bimap_and_boost/boost_libraries_that_work_well_with_boost_bimap.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="section" title="Bimap and Boost">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_bimap.bimap_and_boost"></a><a class="link" href="bimap_and_boost.html" title="Bimap and Boost">Bimap and Boost</a>
</h2></div></div></div>
@@ -45,7 +45,7 @@
</dl></dd>
<dt><span class="section"><a href="bimap_and_boost/dependencies.html">Dependencies</a></span></dt>
</dl></div>
<div class="section" lang="en">
<div class="section" title="Bimap and MultiIndex">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_bimap.bimap_and_boost.bimap_and_multiindex"></a><a class="link" href="bimap_and_boost.html#boost_bimap.bimap_and_boost.bimap_and_multiindex" title="Bimap and MultiIndex">Bimap
and MultiIndex</a>
@@ -101,7 +101,7 @@
in its own class every time they want to use it as a bidirectional map. Boost.Bimap
takes advantage of the narrower scope to produce a better interface for bidirectional
maps
<sup>[<a name="id2664358" href="#ftn.id2664358" class="footnote">2</a>]</sup>
<sup>[<a name="id583056" href="#ftn.id583056" class="footnote">2</a>]</sup>
. There is no learning curve if you know how to use standard containers.
Great effort was put into mapping the naming scheme of the STL to Boost.Bimap.
The library is designed to match the common STL containers.
@@ -151,7 +151,7 @@
</div>
<div class="footnotes">
<br><hr width="100" align="left">
<div class="footnote"><p><sup>[<a name="ftn.id2664358" href="#id2664358" class="para">2</a>] </sup>
<div class="footnote"><p><sup>[<a name="ftn.id583056" href="#id583056" class="para">2</a>] </sup>
In the same fashion, Boost.MRU will allow the creation of <span class="emphasis"><em>most
recent updated</em></span> aware containers, hiding the complexity of
Boost.MultiIndex.

View File

@@ -3,8 +3,8 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Boost Libraries that work well with Boost.Bimap</title>
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../../index.html" title="Chapter 1. Boost.Bimap">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter 1. Boost.Bimap">
<link rel="up" href="../bimap_and_boost.html" title="Bimap and Boost">
<link rel="prev" href="../bimap_and_boost.html" title="Bimap and Boost">
<link rel="next" href="dependencies.html" title="Dependencies">
@@ -14,15 +14,15 @@
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../bimap_and_boost.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../bimap_and_boost.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="dependencies.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="section" title="Boost Libraries that work well with Boost.Bimap">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_bimap.bimap_and_boost.boost_libraries_that_work_well_with_boost_bimap"></a><a class="link" href="boost_libraries_that_work_well_with_boost_bimap.html" title="Boost Libraries that work well with Boost.Bimap">Boost
Libraries that work well with Boost.Bimap</a>
@@ -39,7 +39,7 @@
<dt><span class="section"><a href="boost_libraries_that_work_well_with_boost_bimap.html#boost_bimap.bimap_and_boost.boost_libraries_that_work_well_with_boost_bimap.boost_xpressive">Boost.Xpressive</a></span></dt>
<dt><span class="section"><a href="boost_libraries_that_work_well_with_boost_bimap.html#boost_bimap.bimap_and_boost.boost_libraries_that_work_well_with_boost_bimap.boost_property_map">Boost.Property_map</a></span></dt>
</dl></div>
<div class="section" lang="en">
<div class="section" title="Introduction">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_bimap.bimap_and_boost.boost_libraries_that_work_well_with_boost_bimap.introduction"></a><a class="link" href="boost_libraries_that_work_well_with_boost_bimap.html#boost_bimap.bimap_and_boost.boost_libraries_that_work_well_with_boost_bimap.introduction" title="Introduction">Introduction</a>
</h4></div></div></div>
@@ -280,7 +280,7 @@
</tbody>
</table></div>
</div>
<div class="section" lang="en">
<div class="section" title="Boost.Serialization">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_bimap.bimap_and_boost.boost_libraries_that_work_well_with_boost_bimap.boost_serialization"></a><a class="link" href="boost_libraries_that_work_well_with_boost_bimap.html#boost_bimap.bimap_and_boost.boost_libraries_that_work_well_with_boost_bimap.boost_serialization" title="Boost.Serialization">Boost.Serialization</a>
</h4></div></div></div>
@@ -298,8 +298,7 @@
<p>
</p>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="keyword">int</span> <span class="special">&gt;</span> <span class="identifier">bm_type</span><span class="special">;</span>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="keyword">int</span> <span class="special">&gt;</span> <span class="identifier">bm_type</span><span class="special">;</span>
<span class="comment">// Create a bimap and serialize it to a file
</span><span class="special">{</span>
@@ -310,9 +309,9 @@
<span class="identifier">std</span><span class="special">::</span><span class="identifier">ofstream</span> <span class="identifier">ofs</span><span class="special">(</span><span class="string">"data"</span><span class="special">);</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">archive</span><span class="special">::</span><span class="identifier">text_oarchive</span> <span class="identifier">oa</span><span class="special">(</span><span class="identifier">ofs</span><span class="special">);</span>
<span class="identifier">oa</span> <span class="special">&lt;&lt;</span> <span class="keyword">const_cast</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="identifier">bm_type</span><span class="special">&amp;&gt;(</span><span class="identifier">bm</span><span class="special">);</span> <span class="callout_bug"><a class="co" name="boost_bimap16co" href="boost_libraries_that_work_well_with_boost_bimap.html#boost_bimap16"><img src="../../images/callouts/1.png" alt="1" border="0"></a></span>
<span class="identifier">oa</span> <span class="special">&lt;&lt;</span> <span class="keyword">const_cast</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="identifier">bm_type</span><span class="special">&amp;&gt;(</span><span class="identifier">bm</span><span class="special">);</span> <span class="callout_bug"><a class="co" name="boost_bimap16co" href="boost_libraries_that_work_well_with_boost_bimap.html#boost_bimap16"><img src="../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a></span>
<span class="line_callout_bug"><a class="co" name="boost_bimap17co" href="boost_libraries_that_work_well_with_boost_bimap.html#boost_bimap17"><img src="../../images/callouts/2.png" alt="2" border="0"></a></span><span class="keyword">const</span> <span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">left_iterator</span> <span class="identifier">left_iter</span> <span class="special">=</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">left</span><span class="special">.</span><span class="identifier">find</span><span class="special">(</span><span class="string">"two"</span><span class="special">);</span>
<span class="line_callout_bug"><a class="co" name="boost_bimap17co" href="boost_libraries_that_work_well_with_boost_bimap.html#boost_bimap17"><img src="../../../../../../doc/src/images/callouts/2.png" alt="2" border="0"></a></span><span class="keyword">const</span> <span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">left_iterator</span> <span class="identifier">left_iter</span> <span class="special">=</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">left</span><span class="special">.</span><span class="identifier">find</span><span class="special">(</span><span class="string">"two"</span><span class="special">);</span>
<span class="identifier">oa</span> <span class="special">&lt;&lt;</span> <span class="identifier">left_iter</span><span class="special">;</span>
<span class="keyword">const</span> <span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">right_iterator</span> <span class="identifier">right_iter</span> <span class="special">=</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">right</span><span class="special">.</span><span class="identifier">find</span><span class="special">(</span><span class="number">1</span><span class="special">);</span>
@@ -349,14 +348,14 @@
</p>
<div class="calloutlist"><table border="0" summary="Callout list">
<tr>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap16"></a><a href="#boost_bimap16co"><img src="../../images/callouts/1.png" alt="1" border="0"></a> </p></td>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap16"></a><a href="#boost_bimap16co"><img src="../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a> </p></td>
<td valign="top" align="left"><p>
We must do a const cast because Boost.Serialization archives only save
const objects. Read Boost.Serializartion docs for the rationale behind
this decision </p></td>
</tr>
<tr>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap17"></a><a href="#boost_bimap17co"><img src="../../images/callouts/2.png" alt="2" border="0"></a> </p></td>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap17"></a><a href="#boost_bimap17co"><img src="../../../../../../doc/src/images/callouts/2.png" alt="2" border="0"></a> </p></td>
<td valign="top" align="left"><p> We can only serialize iterators if the bimap was serialized
first. Note that the const cast is not requiered here because we create
our iterators as const. </p></td>
@@ -376,7 +375,7 @@
in build times, and may be necessary in those defective compilers that
fail to correctly process Boost.Serialization headers.
</p>
<div class="warning"><table border="0" summary="Warning">
<div class="warning" title="Warning"><table border="0" summary="Warning">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="../../../../../../doc/html/images/warning.png"></td>
<th align="left">Warning</th>
@@ -404,7 +403,7 @@
must be done only after serializing its corresponding container.
</p>
</div>
<div class="section" lang="en">
<div class="section" title="Boost.Assign">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_bimap.bimap_and_boost.boost_libraries_that_work_well_with_boost_bimap.boost_assign"></a><a class="link" href="boost_libraries_that_work_well_with_boost_bimap.html#boost_bimap.bimap_and_boost.boost_libraries_that_work_well_with_boost_bimap.boost_assign" title="Boost.Assign">Boost.Assign</a>
</h4></div></div></div>
@@ -434,12 +433,11 @@
<p>
</p>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span> <span class="identifier">multiset_of</span><span class="special">&lt;</span> <span class="keyword">int</span> <span class="special">&gt;,</span> <span class="identifier">list_of</span><span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">bm_type</span><span class="special">;</span>
<pre class="programlisting"> <span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span> <span class="identifier">multiset_of</span><span class="special">&lt;</span> <span class="keyword">int</span> <span class="special">&gt;,</span> <span class="identifier">list_of</span><span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">bm_type</span><span class="special">;</span>
<span class="comment">// We can use assign::list_of to initialize the container.
</span>
<span class="identifier">bm_type</span> <span class="identifier">bm</span> <span class="special">=</span> <span class="identifier">assign</span><span class="special">::</span><span class="identifier">list_of</span><span class="special">&lt;</span> <span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">relation</span> <span class="special">&gt;</span> <span class="callout_bug"><a class="co" name="boost_bimap18co" href="boost_libraries_that_work_well_with_boost_bimap.html#boost_bimap18"><img src="../../images/callouts/1.png" alt="1" border="0"></a></span>
<span class="identifier">bm_type</span> <span class="identifier">bm</span> <span class="special">=</span> <span class="identifier">assign</span><span class="special">::</span><span class="identifier">list_of</span><span class="special">&lt;</span> <span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">relation</span> <span class="special">&gt;</span> <span class="callout_bug"><a class="co" name="boost_bimap18co" href="boost_libraries_that_work_well_with_boost_bimap.html#boost_bimap18"><img src="../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a></span>
<span class="special">(</span> <span class="number">1</span><span class="special">,</span> <span class="string">"one"</span> <span class="special">)</span>
<span class="special">(</span> <span class="number">2</span><span class="special">,</span> <span class="string">"two"</span> <span class="special">)</span>
<span class="special">(</span> <span class="number">3</span><span class="special">,</span> <span class="string">"three"</span> <span class="special">);</span>
@@ -476,7 +474,7 @@
<p>
</p>
<div class="calloutlist"><table border="0" summary="Callout list"><tr>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap18"></a><a href="#boost_bimap18co"><img src="../../images/callouts/1.png" alt="1" border="0"></a> </p></td>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap18"></a><a href="#boost_bimap18co"><img src="../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a> </p></td>
<td valign="top" align="left"><p>
Note that <code class="computeroutput"><span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">relation</span></code> has to be used instead of
<code class="computeroutput"><span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">value_type</span></code>. Contrary to <code class="computeroutput"><span class="identifier">value_type</span></code>, <code class="computeroutput"><span class="identifier">relation</span></code>
@@ -487,7 +485,7 @@
<p>
</p>
</div>
<div class="section" lang="en">
<div class="section" title="Boost.Hash">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_bimap.bimap_and_boost.boost_libraries_that_work_well_with_boost_bimap.boost_hash"></a><a class="link" href="boost_libraries_that_work_well_with_boost_bimap.html#boost_bimap.bimap_and_boost.boost_libraries_that_work_well_with_boost_bimap.boost_hash" title="Boost.Hash">Boost.Hash</a>
</h4></div></div></div>
@@ -508,12 +506,12 @@
results.
</p>
<p>
Boost.Hash can be <a href="http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/hash/custom.html" target="_top">extended
Boost.Hash can be <a href="http://www.boost.org/doc/html/hash/custom.html" target="_top">extended
for custom data types</a>, enabling to use the default parameter of
the unordered set types with any user types.
</p>
</div>
<div class="section" lang="en">
<div class="section" title="Boost.Lambda">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_bimap.bimap_and_boost.boost_libraries_that_work_well_with_boost_bimap.boost_lambda"></a><a class="link" href="boost_libraries_that_work_well_with_boost_bimap.html#boost_bimap.bimap_and_boost.boost_libraries_that_work_well_with_boost_bimap.boost_lambda" title="Boost.Lambda">Boost.Lambda</a>
</h4></div></div></div>
@@ -539,8 +537,7 @@
<p>
</p>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="keyword">int</span> <span class="special">&gt;</span> <span class="identifier">bm_type</span><span class="special">;</span>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="keyword">int</span> <span class="special">&gt;</span> <span class="identifier">bm_type</span><span class="special">;</span>
<span class="identifier">bm_type</span> <span class="identifier">bm</span><span class="special">;</span>
<span class="identifier">bm</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span> <span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">value_type</span><span class="special">(</span><span class="string">"one"</span><span class="special">,</span><span class="number">1</span><span class="special">)</span> <span class="special">);</span>
@@ -557,7 +554,7 @@
<p>
</p>
</div>
<div class="section" lang="en">
<div class="section" title="Boost.Range">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_bimap.bimap_and_boost.boost_libraries_that_work_well_with_boost_bimap.boost_range"></a><a class="link" href="boost_libraries_that_work_well_with_boost_bimap.html#boost_bimap.bimap_and_boost.boost_libraries_that_work_well_with_boost_bimap.boost_range" title="Boost.Range">Boost.Range</a>
</h4></div></div></div>
@@ -585,8 +582,7 @@
<p>
</p>
<pre class="programlisting">
<span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">ForwardReadableRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">UnaryFunctor</span> <span class="special">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">ForwardReadableRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">UnaryFunctor</span> <span class="special">&gt;</span>
<span class="identifier">UnaryFunctor</span> <span class="identifier">for_each</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardReadableRange</span> <span class="special">&amp;</span> <span class="identifier">r</span><span class="special">,</span> <span class="identifier">UnaryFunctor</span> <span class="identifier">func</span><span class="special">)</span>
<span class="special">{</span>
<span class="keyword">typedef</span> <span class="keyword">typename</span>
@@ -630,8 +626,7 @@
<p>
</p>
<pre class="programlisting">
<span class="keyword">struct</span> <span class="identifier">pair_printer</span>
<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">pair_printer</span>
<span class="special">{</span>
<span class="identifier">pair_printer</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">)</span> <span class="special">:</span> <span class="identifier">os</span><span class="special">(</span><span class="identifier">o</span><span class="special">)</span> <span class="special">{}</span>
<span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">Pair</span> <span class="special">&gt;</span>
@@ -688,7 +683,7 @@
<a href="../../../../example/bimap_and_boost/range.cpp" target="_top">Go to source code</a>
</p>
</div>
<div class="section" lang="en">
<div class="section" title="Boost.Foreach">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_bimap.bimap_and_boost.boost_libraries_that_work_well_with_boost_bimap.boost_foreach"></a><a class="link" href="boost_libraries_that_work_well_with_boost_bimap.html#boost_bimap.bimap_and_boost.boost_libraries_that_work_well_with_boost_bimap.boost_foreach" title="Boost.Foreach">Boost.Foreach</a>
</h4></div></div></div>
@@ -712,8 +707,7 @@
<p>
</p>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="identifier">list_of</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">bm_type</span><span class="special">;</span>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="identifier">list_of</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">bm_type</span><span class="special">;</span>
<span class="identifier">bm_type</span> <span class="identifier">bm</span><span class="special">;</span>
<span class="identifier">bm</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span> <span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">value_type</span><span class="special">(</span><span class="string">"1"</span><span class="special">,</span> <span class="number">1</span><span class="special">)</span> <span class="special">);</span>
@@ -723,7 +717,7 @@
<span class="identifier">BOOST_FOREACH</span><span class="special">(</span> <span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">left_reference</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">left</span> <span class="special">)</span>
<span class="special">{</span>
<span class="special">++</span><span class="identifier">p</span><span class="special">.</span><span class="identifier">second</span><span class="special">;</span> <span class="callout_bug"><a class="co" name="boost_bimap19co" href="boost_libraries_that_work_well_with_boost_bimap.html#boost_bimap19"><img src="../../images/callouts/1.png" alt="1" border="0"></a></span>
<span class="special">++</span><span class="identifier">p</span><span class="special">.</span><span class="identifier">second</span><span class="special">;</span> <span class="callout_bug"><a class="co" name="boost_bimap19co" href="boost_libraries_that_work_well_with_boost_bimap.html#boost_bimap19"><img src="../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a></span>
<span class="special">}</span>
<span class="identifier">BOOST_FOREACH</span><span class="special">(</span> <span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">right_const_reference</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">right</span> <span class="special">)</span>
@@ -739,7 +733,7 @@
<p>
</p>
<div class="calloutlist"><table border="0" summary="Callout list"><tr>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap19"></a><a href="#boost_bimap19co"><img src="../../images/callouts/1.png" alt="1" border="0"></a> </p></td>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap19"></a><a href="#boost_bimap19co"><img src="../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a> </p></td>
<td valign="top" align="left"><p> We can modify the right element because we have use a mutable collection
type in the right side. </p></td>
</tr></table></div>
@@ -755,8 +749,7 @@
<p>
</p>
<pre class="programlisting">
<span class="identifier">BOOST_FOREACH</span><span class="special">(</span> <span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">left_reference</span> <span class="identifier">p</span><span class="special">,</span>
<pre class="programlisting"><span class="identifier">BOOST_FOREACH</span><span class="special">(</span> <span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">left_reference</span> <span class="identifier">p</span><span class="special">,</span>
<span class="special">(</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">left</span><span class="special">.</span><span class="identifier">range</span><span class="special">(</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">(</span><span class="string">"1"</span><span class="special">)</span> <span class="special">&lt;=</span> <span class="identifier">_key</span><span class="special">,</span> <span class="identifier">_key</span> <span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">(</span><span class="string">"3"</span><span class="special">)</span> <span class="special">)</span> <span class="special">))</span>
<span class="special">{</span>
<span class="special">++</span><span class="identifier">p</span><span class="special">.</span><span class="identifier">second</span><span class="special">;</span>
@@ -776,21 +769,19 @@
<a href="../../../../example/bimap_and_boost/foreach.cpp" target="_top">Go to source code</a>
</p>
</div>
<div class="section" lang="en">
<div class="section" title="Boost.Typeof">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_bimap.bimap_and_boost.boost_libraries_that_work_well_with_boost_bimap.boost_typeof"></a><a class="link" href="boost_libraries_that_work_well_with_boost_bimap.html#boost_bimap.bimap_and_boost.boost_libraries_that_work_well_with_boost_bimap.boost_typeof" title="Boost.Typeof">Boost.Typeof</a>
</h4></div></div></div>
<p>
Once C++0x is out we are going to be able to write code like:
</p>
<pre class="programlisting">
<span class="keyword">auto</span> <span class="identifier">iter</span> <span class="special">=</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">by</span><span class="special">&lt;</span><span class="identifier">name</span><span class="special">&gt;().</span><span class="identifier">find</span><span class="special">(</span><span class="string">"john"</span><span class="special">);</span>
<pre class="programlisting"><span class="keyword">auto</span> <span class="identifier">iter</span> <span class="special">=</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">by</span><span class="special">&lt;</span><span class="identifier">name</span><span class="special">&gt;().</span><span class="identifier">find</span><span class="special">(</span><span class="string">"john"</span><span class="special">);</span>
</pre>
<p>
instead of the more verbose
</p>
<pre class="programlisting">
<span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">map_by</span><span class="special">&lt;</span><span class="identifier">name</span><span class="special">&gt;::</span><span class="identifier">iterator</span> <span class="identifier">iter</span> <span class="special">=</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">by</span><span class="special">&lt;</span><span class="identifier">name</span><span class="special">&gt;().</span><span class="identifier">find</span><span class="special">(</span><span class="string">"john"</span><span class="special">);</span>
<pre class="programlisting"><span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">map_by</span><span class="special">&lt;</span><span class="identifier">name</span><span class="special">&gt;::</span><span class="identifier">iterator</span> <span class="identifier">iter</span> <span class="special">=</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">by</span><span class="special">&lt;</span><span class="identifier">name</span><span class="special">&gt;().</span><span class="identifier">find</span><span class="special">(</span><span class="string">"john"</span><span class="special">);</span>
</pre>
<p>
Boost.Typeof defines a macro BOOST_AUTO that can be used as a library solution
@@ -804,8 +795,7 @@
<p>
</p>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span> <span class="identifier">tagged</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span><span class="identifier">name</span><span class="special">&gt;,</span> <span class="identifier">tagged</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="identifier">number</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">bm_type</span><span class="special">;</span>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span> <span class="identifier">tagged</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span><span class="identifier">name</span><span class="special">&gt;,</span> <span class="identifier">tagged</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="identifier">number</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">bm_type</span><span class="special">;</span>
<span class="identifier">bm_type</span> <span class="identifier">bm</span><span class="special">;</span>
<span class="identifier">bm</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span> <span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">value_type</span><span class="special">(</span><span class="string">"one"</span> <span class="special">,</span><span class="number">1</span><span class="special">)</span> <span class="special">);</span>
<span class="identifier">bm</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span> <span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">value_type</span><span class="special">(</span><span class="string">"two"</span> <span class="special">,</span><span class="number">2</span><span class="special">)</span> <span class="special">);</span>
@@ -822,8 +812,7 @@
<p>
</p>
<pre class="programlisting">
<span class="keyword">for</span><span class="special">(</span> <span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">map_by</span><span class="special">&lt;</span><span class="identifier">name</span><span class="special">&gt;::</span><span class="identifier">iterator</span> <span class="identifier">iter</span> <span class="special">=</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">by</span><span class="special">&lt;</span><span class="identifier">name</span><span class="special">&gt;().</span><span class="identifier">begin</span><span class="special">();</span>
<pre class="programlisting"><span class="keyword">for</span><span class="special">(</span> <span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">map_by</span><span class="special">&lt;</span><span class="identifier">name</span><span class="special">&gt;::</span><span class="identifier">iterator</span> <span class="identifier">iter</span> <span class="special">=</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">by</span><span class="special">&lt;</span><span class="identifier">name</span><span class="special">&gt;().</span><span class="identifier">begin</span><span class="special">();</span>
<span class="identifier">iter</span><span class="special">!=</span><span class="identifier">bm</span><span class="special">.</span><span class="identifier">by</span><span class="special">&lt;</span><span class="identifier">name</span><span class="special">&gt;().</span><span class="identifier">end</span><span class="special">();</span> <span class="special">++</span><span class="identifier">iter</span><span class="special">)</span>
<span class="special">{</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">iter</span><span class="special">-&gt;</span><span class="identifier">first</span> <span class="special">&lt;&lt;</span> <span class="string">" --&gt; "</span> <span class="special">&lt;&lt;</span> <span class="identifier">iter</span><span class="special">-&gt;</span><span class="identifier">second</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
@@ -844,8 +833,7 @@
<p>
</p>
<pre class="programlisting">
<span class="keyword">for</span><span class="special">(</span> <span class="identifier">BOOST_AUTO</span><span class="special">(</span><span class="identifier">iter</span><span class="special">,</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">by</span><span class="special">&lt;</span><span class="identifier">name</span><span class="special">&gt;().</span><span class="identifier">begin</span><span class="special">());</span> <span class="identifier">iter</span><span class="special">!=</span><span class="identifier">bm</span><span class="special">.</span><span class="identifier">by</span><span class="special">&lt;</span><span class="identifier">name</span><span class="special">&gt;().</span><span class="identifier">end</span><span class="special">();</span> <span class="special">++</span><span class="identifier">iter</span><span class="special">)</span>
<pre class="programlisting"><span class="keyword">for</span><span class="special">(</span> <span class="identifier">BOOST_AUTO</span><span class="special">(</span><span class="identifier">iter</span><span class="special">,</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">by</span><span class="special">&lt;</span><span class="identifier">name</span><span class="special">&gt;().</span><span class="identifier">begin</span><span class="special">());</span> <span class="identifier">iter</span><span class="special">!=</span><span class="identifier">bm</span><span class="special">.</span><span class="identifier">by</span><span class="special">&lt;</span><span class="identifier">name</span><span class="special">&gt;().</span><span class="identifier">end</span><span class="special">();</span> <span class="special">++</span><span class="identifier">iter</span><span class="special">)</span>
<span class="special">{</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">iter</span><span class="special">-&gt;</span><span class="identifier">first</span> <span class="special">&lt;&lt;</span> <span class="string">" --&gt; "</span> <span class="special">&lt;&lt;</span> <span class="identifier">iter</span><span class="special">-&gt;</span><span class="identifier">second</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
<span class="special">}</span>
@@ -861,7 +849,7 @@
<a href="../../../../example/bimap_and_boost/typeof.cpp" target="_top">Go to source code</a>
</p>
</div>
<div class="section" lang="en">
<div class="section" title="Boost.Xpressive">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_bimap.bimap_and_boost.boost_libraries_that_work_well_with_boost_bimap.boost_xpressive"></a><a class="link" href="boost_libraries_that_work_well_with_boost_bimap.html#boost_bimap.bimap_and_boost.boost_libraries_that_work_well_with_boost_bimap.boost_xpressive" title="Boost.Xpressive">Boost.Xpressive</a>
</h4></div></div></div>
@@ -875,8 +863,7 @@
<p>
</p>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="keyword">int</span> <span class="special">&gt;</span> <span class="identifier">bm_type</span><span class="special">;</span>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="keyword">int</span> <span class="special">&gt;</span> <span class="identifier">bm_type</span><span class="special">;</span>
<span class="identifier">bm_type</span> <span class="identifier">bm</span><span class="special">;</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">rel_str</span><span class="special">(</span><span class="string">"one &lt;--&gt; 1 two &lt;--&gt; 2 three &lt;--&gt; 3"</span><span class="special">);</span>
@@ -900,7 +887,7 @@
<a href="../../../../example/bimap_and_boost/xpressive.cpp" target="_top">Go to source code</a>
</p>
</div>
<div class="section" lang="en">
<div class="section" title="Boost.Property_map">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_bimap.bimap_and_boost.boost_libraries_that_work_well_with_boost_bimap.boost_property_map"></a><a class="link" href="boost_libraries_that_work_well_with_boost_bimap.html#boost_bimap.bimap_and_boost.boost_libraries_that_work_well_with_boost_bimap.boost_property_map" title="Boost.Property_map">Boost.Property_map</a>
</h4></div></div></div>
@@ -928,8 +915,7 @@
are read-write property maps. In order to use these, you need to include
one of the following headers:
</p>
<pre class="programlisting">
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">bimap</span><span class="special">/</span><span class="identifier">property_map</span><span class="special">/</span><span class="identifier">set_support</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">bimap</span><span class="special">/</span><span class="identifier">property_map</span><span class="special">/</span><span class="identifier">set_support</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">bimap</span><span class="special">/</span><span class="identifier">property_map</span><span class="special">/</span><span class="identifier">unordered_set_support</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<p>
@@ -944,8 +930,7 @@
<p>
</p>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">AddressMap</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">AddressMap</span><span class="special">&gt;</span>
<span class="keyword">void</span> <span class="identifier">foo</span><span class="special">(</span><span class="identifier">AddressMap</span> <span class="special">&amp;</span> <span class="identifier">address_map</span><span class="special">)</span>
<span class="special">{</span>
<span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">property_traits</span><span class="special">&lt;</span><span class="identifier">AddressMap</span><span class="special">&gt;::</span><span class="identifier">value_type</span> <span class="identifier">value_type</span><span class="special">;</span>

View File

@@ -3,8 +3,8 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Dependencies</title>
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../../index.html" title="Chapter 1. Boost.Bimap">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter 1. Boost.Bimap">
<link rel="up" href="../bimap_and_boost.html" title="Bimap and Boost">
<link rel="prev" href="boost_libraries_that_work_well_with_boost_bimap.html" title="Boost Libraries that work well with Boost.Bimap">
<link rel="next" href="../reference.html" title="Reference">
@@ -14,15 +14,15 @@
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="boost_libraries_that_work_well_with_boost_bimap.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../bimap_and_boost.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../reference.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="section" title="Dependencies">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_bimap.bimap_and_boost.dependencies"></a><a class="link" href="dependencies.html" title="Dependencies">Dependencies</a>
</h3></div></div></div>
@@ -35,7 +35,7 @@
is the heart of this library.
</p>
<div class="table">
<a name="id2673350"></a><p class="title"><b>Table 1.4. Boost Libraries needed by Boost.Bimap</b></p>
<a name="id591722"></a><p class="title"><b>Table 1.4. Boost Libraries needed by Boost.Bimap</b></p>
<div class="table-contents"><table class="table" summary="Boost Libraries needed by Boost.Bimap">
<colgroup>
<col>
@@ -184,7 +184,7 @@
</table></div>
</div>
<br class="table-break"><div class="table">
<a name="id2673624"></a><p class="title"><b>Table 1.5. Optional Boost Libraries</b></p>
<a name="id591995"></a><p class="title"><b>Table 1.5. Optional Boost Libraries</b></p>
<div class="table-contents"><table class="table" summary="Optional Boost Libraries">
<colgroup>
<col>
@@ -354,7 +354,7 @@
</table></div>
</div>
<br class="table-break"><div class="table">
<a name="id2673910"></a><p class="title"><b>Table 1.6. Additional Boost Libraries needed to run
<a name="id592279"></a><p class="title"><b>Table 1.6. Additional Boost Libraries needed to run
the test-suite</b></p>
<div class="table-contents"><table class="table" summary="Additional Boost Libraries needed to run
the test-suite">

View File

@@ -3,8 +3,8 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Compiler specifics</title>
<link rel="stylesheet" href="../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../index.html" title="Chapter 1. Boost.Bimap">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../index.html" title="Chapter 1. Boost.Bimap">
<link rel="up" href="../index.html" title="Chapter 1. Boost.Bimap">
<link rel="prev" href="reference/unconstrained_set_of_reference.html" title="unconstrained_set_of Reference">
<link rel="next" href="performance.html" title="Performance">
@@ -14,15 +14,15 @@
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="reference/unconstrained_set_of_reference.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="performance.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="section" title="Compiler specifics">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_bimap.compiler_specifics"></a><a class="link" href="compiler_specifics.html" title="Compiler specifics">Compiler specifics</a>
</h2></div></div></div>
@@ -325,7 +325,7 @@
</tbody>
</table></div>
<a name="boost_bimap.compiler_specifics.vs_7_1"></a><h3>
<a name="id2732451"></a>
<a name="id650190"></a>
<a class="link" href="compiler_specifics.html#boost_bimap.compiler_specifics.vs_7_1">VS 7.1</a>
</h3>
<p>
@@ -334,7 +334,7 @@
in msdn is to split the .cpp in several files or upgrade your compiler.
</p>
<a name="boost_bimap.compiler_specifics.vs_8_0"></a><h3>
<a name="id2732479"></a>
<a name="id650218"></a>
<a class="link" href="compiler_specifics.html#boost_bimap.compiler_specifics.vs_8_0">VS 8.0</a>
</h3>
<p>
@@ -346,8 +346,7 @@
In order to turn off the warnings add the followings defines at the begging
of your .cpp files:
</p>
<pre class="programlisting">
<span class="preprocessor">#define</span> <span class="identifier">_CRT_SECURE_NO_DEPRECATE</span>
<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">_CRT_SECURE_NO_DEPRECATE</span>
<span class="preprocessor">#define</span> <span class="identifier">_SCL_SECURE_NO_DEPRECATE</span>
</pre>
</div>

View File

@@ -3,8 +3,8 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Examples</title>
<link rel="stylesheet" href="../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../index.html" title="Chapter 1. Boost.Bimap">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../index.html" title="Chapter 1. Boost.Bimap">
<link rel="up" href="../index.html" title="Chapter 1. Boost.Bimap">
<link rel="prev" href="performance.html" title="Performance">
<link rel="next" href="examples/simple_bimap.html" title="Simple Bimap">
@@ -14,15 +14,15 @@
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="performance.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="examples/simple_bimap.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="section" title="Examples">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_bimap.examples"></a><a class="link" href="examples.html" title="Examples">Examples</a>
</h2></div></div></div>
@@ -35,7 +35,7 @@
<dt><span class="section"><a href="examples/multiindex_to_bimap_path___hashed_indices.html">MultiIndex
to Bimap Path - Hashed indices</a></span></dt>
</dl></div>
<div class="section" lang="en">
<div class="section" title="Examples list">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_bimap.examples.examples_list"></a><a class="link" href="examples.html#boost_bimap.examples.examples_list" title="Examples list">Examples list</a>
</h3></div></div></div>
@@ -44,7 +44,7 @@
find all the examples used in bimap documentation. Here is a list of them:
</p>
<div class="table">
<a name="id2732600"></a><p class="title"><b>Table 1.7. Tutorial examples</b></p>
<a name="id650327"></a><p class="title"><b>Table 1.7. Tutorial examples</b></p>
<div class="table-contents"><table class="table" summary="Tutorial examples">
<colgroup>
<col>
@@ -238,7 +238,7 @@
</table></div>
</div>
<br class="table-break"><div class="table">
<a name="id2733080"></a><p class="title"><b>Table 1.8. Bimap and Boost examples</b></p>
<a name="id650801"></a><p class="title"><b>Table 1.8. Bimap and Boost examples</b></p>
<div class="table-contents"><table class="table" summary="Bimap and Boost examples">
<colgroup>
<col>
@@ -361,7 +361,7 @@
</table></div>
</div>
<br class="table-break"><div class="table">
<a name="id2733301"></a><p class="title"><b>Table 1.9. Boost.MultiIndex to Boost.Bimap path examples</b></p>
<a name="id651020"></a><p class="title"><b>Table 1.9. Boost.MultiIndex to Boost.Bimap path examples</b></p>
<div class="table-contents"><table class="table" summary="Boost.MultiIndex to Boost.Bimap path examples">
<colgroup>
<col>

View File

@@ -3,8 +3,8 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Mighty Bimap</title>
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../../index.html" title="Chapter 1. Boost.Bimap">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter 1. Boost.Bimap">
<link rel="up" href="../examples.html" title="Examples">
<link rel="prev" href="simple_bimap.html" title="Simple Bimap">
<link rel="next" href="multiindex_to_bimap_path___bidirectional_map.html" title="MultiIndex to Bimap Path - Bidirectional Map">
@@ -14,15 +14,15 @@
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="simple_bimap.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../examples.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="multiindex_to_bimap_path___bidirectional_map.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="section" title="Mighty Bimap">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_bimap.examples.mighty_bimap"></a><a class="link" href="mighty_bimap.html" title="Mighty Bimap">Mighty Bimap</a>
</h3></div></div></div>
@@ -38,8 +38,7 @@
<p>
</p>
<pre class="programlisting">
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">string</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">bimap</span><span class="special">/</span><span class="identifier">bimap</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">bimap</span><span class="special">/</span><span class="identifier">list_of</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>

View File

@@ -3,8 +3,8 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>MultiIndex to Bimap Path - Bidirectional Map</title>
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../../index.html" title="Chapter 1. Boost.Bimap">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter 1. Boost.Bimap">
<link rel="up" href="../examples.html" title="Examples">
<link rel="prev" href="mighty_bimap.html" title="Mighty Bimap">
<link rel="next" href="multiindex_to_bimap_path___hashed_indices.html" title="MultiIndex to Bimap Path - Hashed indices">
@@ -14,15 +14,15 @@
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="mighty_bimap.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../examples.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="multiindex_to_bimap_path___hashed_indices.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="section" title="MultiIndex to Bimap Path - Bidirectional Map">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_bimap.examples.multiindex_to_bimap_path___bidirectional_map"></a><a class="link" href="multiindex_to_bimap_path___bidirectional_map.html" title="MultiIndex to Bimap Path - Bidirectional Map">MultiIndex
to Bimap Path - Bidirectional Map</a>
@@ -42,7 +42,7 @@
</p>
</div>
<a name="boost_bimap.examples.multiindex_to_bimap_path___bidirectional_map.boost_multiindex"></a><h5>
<a name="id2738275"></a>
<a name="id655859"></a>
<a class="link" href="multiindex_to_bimap_path___bidirectional_map.html#boost_bimap.examples.multiindex_to_bimap_path___bidirectional_map.boost_multiindex">Boost.MultiIndex</a>
</h5>
<p>
@@ -54,8 +54,7 @@
<p>
</p>
<pre class="programlisting">
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">tokenizer</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">multi_index_container</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
@@ -151,7 +150,7 @@
<p>
</p>
<a name="boost_bimap.examples.multiindex_to_bimap_path___bidirectional_map.boost_bimap"></a><h5>
<a name="id2740034"></a>
<a name="id657572"></a>
<a class="link" href="multiindex_to_bimap_path___bidirectional_map.html#boost_bimap.examples.multiindex_to_bimap_path___bidirectional_map.boost_bimap">Boost.Bimap</a>
</h5>
<p>
@@ -163,8 +162,7 @@
<p>
</p>
<pre class="programlisting">
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">tokenizer</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">bimap</span><span class="special">/</span><span class="identifier">bimap</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
@@ -200,7 +198,7 @@
<span class="comment">// the second part of the element is the equivalent in English
</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">word</span> <span class="special">&lt;&lt;</span> <span class="string">" is said "</span>
<span class="special">&lt;&lt;</span> <span class="identifier">it</span><span class="special">-&gt;</span><span class="identifier">second</span> <span class="callout_bug"><a class="co" name="boost_bimap23co" href="multiindex_to_bimap_path___bidirectional_map.html#boost_bimap23"><img src="../../images/callouts/1.png" alt="1" border="0"></a></span>
<span class="special">&lt;&lt;</span> <span class="identifier">it</span><span class="special">-&gt;</span><span class="identifier">second</span> <span class="callout_bug"><a class="co" name="boost_bimap23co" href="multiindex_to_bimap_path___bidirectional_map.html#boost_bimap23"><img src="../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a></span>
<span class="special">&lt;&lt;</span> <span class="string">" in English"</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
<span class="special">}</span>
<span class="keyword">else</span>
@@ -211,7 +209,7 @@
<span class="keyword">if</span><span class="special">(</span> <span class="identifier">it2</span> <span class="special">!=</span> <span class="identifier">d</span><span class="special">.</span><span class="identifier">right</span><span class="special">.</span><span class="identifier">end</span><span class="special">()</span> <span class="special">)</span>
<span class="special">{</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">word</span> <span class="special">&lt;&lt;</span> <span class="string">" is said "</span>
<span class="special">&lt;&lt;</span> <span class="identifier">it2</span><span class="special">-&gt;</span><span class="identifier">second</span> <span class="callout_bug"><a class="co" name="boost_bimap24co" href="multiindex_to_bimap_path___bidirectional_map.html#boost_bimap24"><img src="../../images/callouts/2.png" alt="2" border="0"></a></span>
<span class="special">&lt;&lt;</span> <span class="identifier">it2</span><span class="special">-&gt;</span><span class="identifier">second</span> <span class="callout_bug"><a class="co" name="boost_bimap24co" href="multiindex_to_bimap_path___bidirectional_map.html#boost_bimap24"><img src="../../../../../../doc/src/images/callouts/2.png" alt="2" border="0"></a></span>
<span class="special">&lt;&lt;</span> <span class="string">" in Spanish"</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
<span class="special">}</span>
<span class="keyword">else</span>
@@ -231,13 +229,13 @@
</p>
<div class="calloutlist"><table border="0" summary="Callout list">
<tr>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap23"></a><a href="#boost_bimap23co"><img src="../../images/callouts/1.png" alt="1" border="0"></a> </p></td>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap23"></a><a href="#boost_bimap23co"><img src="../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a> </p></td>
<td valign="top" align="left"><p> <code class="computeroutput"><span class="identifier">it</span></code> is an iterator of the
left view, so <code class="computeroutput"><span class="identifier">it</span><span class="special">-&gt;</span><span class="identifier">second</span></code> refers to the right element of
the relation, the word in english </p></td>
</tr>
<tr>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap24"></a><a href="#boost_bimap24co"><img src="../../images/callouts/2.png" alt="2" border="0"></a> </p></td>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap24"></a><a href="#boost_bimap24co"><img src="../../../../../../doc/src/images/callouts/2.png" alt="2" border="0"></a> </p></td>
<td valign="top" align="left"><p> <code class="computeroutput"><span class="identifier">it2</span></code>
is an iterator of the right view, so <code class="computeroutput"><span class="identifier">it2</span><span class="special">-&gt;</span><span class="identifier">second</span></code>
refers to the left element of the relation, the word in spanish </p></td>
@@ -259,8 +257,7 @@
<p>
</p>
<pre class="programlisting">
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">bimap</span><span class="special">/</span><span class="identifier">bimap</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>

View File

@@ -3,8 +3,8 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>MultiIndex to Bimap Path - Hashed indices</title>
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../../index.html" title="Chapter 1. Boost.Bimap">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter 1. Boost.Bimap">
<link rel="up" href="../examples.html" title="Examples">
<link rel="prev" href="multiindex_to_bimap_path___bidirectional_map.html" title="MultiIndex to Bimap Path - Bidirectional Map">
<link rel="next" href="../test_suite.html" title="Test suite">
@@ -14,15 +14,15 @@
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="multiindex_to_bimap_path___bidirectional_map.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../examples.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../test_suite.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="section" title="MultiIndex to Bimap Path - Hashed indices">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_bimap.examples.multiindex_to_bimap_path___hashed_indices"></a><a class="link" href="multiindex_to_bimap_path___hashed_indices.html" title="MultiIndex to Bimap Path - Hashed indices">MultiIndex
to Bimap Path - Hashed indices</a>
@@ -40,7 +40,7 @@
</p>
</div>
<a name="boost_bimap.examples.multiindex_to_bimap_path___hashed_indices.boost_multiindex"></a><h5>
<a name="id2742762"></a>
<a name="id660222"></a>
<a class="link" href="multiindex_to_bimap_path___hashed_indices.html#boost_bimap.examples.multiindex_to_bimap_path___hashed_indices.boost_multiindex">Boost.MultiIndex</a>
</h5>
<p>
@@ -52,8 +52,7 @@
<p>
</p>
<pre class="programlisting">
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iomanip</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">tokenizer</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
@@ -141,7 +140,7 @@
<p>
</p>
<a name="boost_bimap.examples.multiindex_to_bimap_path___hashed_indices.boost_bimap"></a><h5>
<a name="id2744509"></a>
<a name="id661922"></a>
<a class="link" href="multiindex_to_bimap_path___hashed_indices.html#boost_bimap.examples.multiindex_to_bimap_path___hashed_indices.boost_bimap">Boost.Bimap</a>
</h5>
<p>
@@ -152,8 +151,7 @@
<p>
</p>
<pre class="programlisting">
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iomanip</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">tokenizer</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>

View File

@@ -3,8 +3,8 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Simple Bimap</title>
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../../index.html" title="Chapter 1. Boost.Bimap">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter 1. Boost.Bimap">
<link rel="up" href="../examples.html" title="Examples">
<link rel="prev" href="../examples.html" title="Examples">
<link rel="next" href="mighty_bimap.html" title="Mighty Bimap">
@@ -14,15 +14,15 @@
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../examples.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../examples.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="mighty_bimap.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="section" title="Simple Bimap">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_bimap.examples.simple_bimap"></a><a class="link" href="simple_bimap.html" title="Simple Bimap">Simple Bimap</a>
</h3></div></div></div>
@@ -37,8 +37,7 @@
<p>
</p>
<pre class="programlisting">
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">string</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">string</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">bimap</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
@@ -110,8 +109,7 @@
<p>
</p>
<pre class="programlisting">
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">bimap</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
@@ -142,12 +140,12 @@
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Countries names ordered by their final position:"</span>
<span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
<span class="line_callout_bug"><a class="co" name="boost_bimap20co" href="simple_bimap.html#boost_bimap20"><img src="../../images/callouts/1.png" alt="1" border="0"></a></span><span class="keyword">for</span><span class="special">(</span> <span class="identifier">results_bimap</span><span class="special">::</span><span class="identifier">map_by</span><span class="special">&lt;</span><span class="identifier">place</span><span class="special">&gt;::</span><span class="identifier">const_iterator</span>
<span class="line_callout_bug"><a class="co" name="boost_bimap20co" href="simple_bimap.html#boost_bimap20"><img src="../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a></span><span class="keyword">for</span><span class="special">(</span> <span class="identifier">results_bimap</span><span class="special">::</span><span class="identifier">map_by</span><span class="special">&lt;</span><span class="identifier">place</span><span class="special">&gt;::</span><span class="identifier">const_iterator</span>
<span class="identifier">i</span> <span class="special">=</span> <span class="identifier">results</span><span class="special">.</span><span class="identifier">by</span><span class="special">&lt;</span><span class="identifier">place</span><span class="special">&gt;().</span><span class="identifier">begin</span><span class="special">(),</span>
<span class="identifier">iend</span> <span class="special">=</span> <span class="identifier">results</span><span class="special">.</span><span class="identifier">by</span><span class="special">&lt;</span><span class="identifier">place</span><span class="special">&gt;().</span><span class="identifier">end</span><span class="special">()</span> <span class="special">;</span>
<span class="identifier">i</span> <span class="special">!=</span> <span class="identifier">iend</span><span class="special">;</span> <span class="special">++</span><span class="identifier">i</span> <span class="special">)</span>
<span class="special">{</span>
<span class="line_callout_bug"><a class="co" name="boost_bimap21co" href="simple_bimap.html#boost_bimap21"><img src="../../images/callouts/2.png" alt="2" border="0"></a></span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">i</span><span class="special">-&gt;</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">place</span> <span class="special">&gt;()</span> <span class="special">&lt;&lt;</span> <span class="string">") "</span>
<span class="line_callout_bug"><a class="co" name="boost_bimap21co" href="simple_bimap.html#boost_bimap21"><img src="../../../../../../doc/src/images/callouts/2.png" alt="2" border="0"></a></span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">i</span><span class="special">-&gt;</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">place</span> <span class="special">&gt;()</span> <span class="special">&lt;&lt;</span> <span class="string">") "</span>
<span class="special">&lt;&lt;</span> <span class="identifier">i</span><span class="special">-&gt;</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">country</span><span class="special">&gt;()</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
<span class="special">}</span>
@@ -156,7 +154,7 @@
<span class="string">"their final position:"</span>
<span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
<span class="line_callout_bug"><a class="co" name="boost_bimap22co" href="simple_bimap.html#boost_bimap22"><img src="../../images/callouts/3.png" alt="3" border="0"></a></span><span class="keyword">for</span><span class="special">(</span> <span class="identifier">results_bimap</span><span class="special">::</span><span class="identifier">map_by</span><span class="special">&lt;</span><span class="identifier">country</span><span class="special">&gt;::</span><span class="identifier">const_iterator</span>
<span class="line_callout_bug"><a class="co" name="boost_bimap22co" href="simple_bimap.html#boost_bimap22"><img src="../../../../../../doc/src/images/callouts/3.png" alt="3" border="0"></a></span><span class="keyword">for</span><span class="special">(</span> <span class="identifier">results_bimap</span><span class="special">::</span><span class="identifier">map_by</span><span class="special">&lt;</span><span class="identifier">country</span><span class="special">&gt;::</span><span class="identifier">const_iterator</span>
<span class="identifier">i</span> <span class="special">=</span> <span class="identifier">results</span><span class="special">.</span><span class="identifier">by</span><span class="special">&lt;</span><span class="identifier">country</span><span class="special">&gt;().</span><span class="identifier">begin</span><span class="special">(),</span>
<span class="identifier">iend</span> <span class="special">=</span> <span class="identifier">results</span><span class="special">.</span><span class="identifier">by</span><span class="special">&lt;</span><span class="identifier">country</span><span class="special">&gt;().</span><span class="identifier">end</span><span class="special">()</span> <span class="special">;</span>
<span class="identifier">i</span> <span class="special">!=</span> <span class="identifier">iend</span><span class="special">;</span> <span class="special">++</span><span class="identifier">i</span> <span class="special">)</span>
@@ -177,18 +175,18 @@
</p>
<div class="calloutlist"><table border="0" summary="Callout list">
<tr>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap20"></a><a href="#boost_bimap20co"><img src="../../images/callouts/1.png" alt="1" border="0"></a> </p></td>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap20"></a><a href="#boost_bimap20co"><img src="../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a> </p></td>
<td valign="top" align="left"><p> <code class="computeroutput"><span class="identifier">results</span><span class="special">.</span><span class="identifier">by</span><span class="special">&lt;</span><span class="identifier">place</span><span class="special">&gt;()</span></code>
is equivalent to <code class="computeroutput"><span class="identifier">results</span><span class="special">.</span><span class="identifier">right</span></code>
</p></td>
</tr>
<tr>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap21"></a><a href="#boost_bimap21co"><img src="../../images/callouts/2.png" alt="2" border="0"></a> </p></td>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap21"></a><a href="#boost_bimap21co"><img src="../../../../../../doc/src/images/callouts/2.png" alt="2" border="0"></a> </p></td>
<td valign="top" align="left"><p> <code class="computeroutput"><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">Tag</span><span class="special">&gt;</span></code>
works for each view of the bimap </p></td>
</tr>
<tr>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap22"></a><a href="#boost_bimap22co"><img src="../../images/callouts/3.png" alt="3" border="0"></a> </p></td>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap22"></a><a href="#boost_bimap22co"><img src="../../../../../../doc/src/images/callouts/3.png" alt="3" border="0"></a> </p></td>
<td valign="top" align="left"><p> <code class="computeroutput"><span class="identifier">results</span><span class="special">.</span><span class="identifier">by</span><span class="special">&lt;</span><span class="identifier">country</span><span class="special">&gt;()</span></code>
is equivalent to <code class="computeroutput"><span class="identifier">results</span><span class="special">.</span><span class="identifier">left</span></code>
</p></td>

View File

@@ -3,8 +3,8 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Future work</title>
<link rel="stylesheet" href="../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../index.html" title="Chapter 1. Boost.Bimap">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../index.html" title="Chapter 1. Boost.Bimap">
<link rel="up" href="../index.html" title="Chapter 1. Boost.Bimap">
<link rel="prev" href="test_suite.html" title="Test suite">
<link rel="next" href="release_notes.html" title="Release notes">
@@ -14,20 +14,20 @@
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="test_suite.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="release_notes.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="section" title="Future work">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_bimap.future_work"></a><a class="link" href="future_work.html" title="Future work">Future work</a>
</h2></div></div></div>
<a name="boost_bimap.future_work.rearrange_function"></a><h4>
<a name="id2747040"></a>
<a name="id664672"></a>
<a class="link" href="future_work.html#boost_bimap.future_work.rearrange_function">Rearrange Function</a>
</h4>
<p>

View File

@@ -3,8 +3,8 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>History</title>
<link rel="stylesheet" href="../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../index.html" title="Chapter 1. Boost.Bimap">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../index.html" title="Chapter 1. Boost.Bimap">
<link rel="up" href="../index.html" title="Chapter 1. Boost.Bimap">
<link rel="prev" href="rationale/the_student_and_the_mentor.html" title="The student and the mentor">
<link rel="next" href="history/multiindex_and_bimap.html" title="MultiIndex and Bimap">
@@ -14,15 +14,15 @@
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="rationale/the_student_and_the_mentor.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="history/multiindex_and_bimap.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="section" title="History">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_bimap.history"></a><a class="link" href="history.html" title="History">History</a>
</h2></div></div></div>
@@ -32,7 +32,7 @@
<dt><span class="section"><a href="history/multiindex_and_bimap.html">MultiIndex
and Bimap</a></span></dt>
</dl></div>
<div class="section" lang="en">
<div class="section" title="The long path from Code Project to Boost">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_bimap.history.the_long_path_from_code_project_to_boost"></a><a class="link" href="history.html#boost_bimap.history.the_long_path_from_code_project_to_boost" title="The long path from Code Project to Boost">The
long path from Code Project to Boost</a>

View File

@@ -3,8 +3,8 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>MultiIndex and Bimap</title>
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../../index.html" title="Chapter 1. Boost.Bimap">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter 1. Boost.Bimap">
<link rel="up" href="../history.html" title="History">
<link rel="prev" href="../history.html" title="History">
<link rel="next" href="../acknowledgements.html" title="Acknowledgements">
@@ -14,15 +14,15 @@
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../history.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../history.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../acknowledgements.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="section" title="MultiIndex and Bimap">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_bimap.history.multiindex_and_bimap"></a><a class="link" href="multiindex_and_bimap.html" title="MultiIndex and Bimap">MultiIndex
and Bimap</a>
@@ -95,8 +95,7 @@
<p>
</p>
<pre class="programlisting">
<span class="comment">// Data structure itself
<pre class="programlisting"><span class="comment">// Data structure itself
</span><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">ValueType</span><span class="special">,</span><span class="keyword">typename</span> <span class="identifier">KeyType</span><span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">Node</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">ValueType</span><span class="special">,</span><span class="keyword">typename</span> <span class="identifier">KeyType</span><span class="special">&gt;</span>
@@ -141,8 +140,7 @@
<p>
</p>
<pre class="programlisting">
<span class="identifier">ptree_gen</span><span class="special">&lt;</span><span class="identifier">string</span><span class="special">,</span><span class="identifier">string</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">PT</span><span class="special">;</span>
<pre class="programlisting"><span class="identifier">ptree_gen</span><span class="special">&lt;</span><span class="identifier">string</span><span class="special">,</span><span class="identifier">string</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">PT</span><span class="special">;</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">archive</span><span class="special">::</span><span class="identifier">text_iarchive</span> <span class="identifier">ia</span><span class="special">(</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ifstream</span> <span class="identifier">ifs</span><span class="special">(</span><span class="string">"filename"</span><span class="special">)</span> <span class="special">);</span>
<span class="identifier">ia</span> <span class="special">&gt;&gt;</span> <span class="identifier">PT</span><span class="special">;</span>
<span class="identifier">string</span> <span class="identifier">value</span> <span class="special">=</span> <span class="identifier">get</span><span class="special">(</span> <span class="string">"a.b.c.d"</span><span class="special">,</span> <span class="identifier">PT</span> <span class="special">);</span>

View File

@@ -3,8 +3,8 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Introduction</title>
<link rel="stylesheet" href="../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../index.html" title="Chapter 1. Boost.Bimap">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../index.html" title="Chapter 1. Boost.Bimap">
<link rel="up" href="../index.html" title="Chapter 1. Boost.Bimap">
<link rel="prev" href="../index.html" title="Chapter 1. Boost.Bimap">
<link rel="next" href="one_minute_tutorial.html" title="One minute tutorial">
@@ -14,20 +14,20 @@
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../index.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="one_minute_tutorial.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="section" title="Introduction">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_bimap.introduction"></a><a class="link" href="introduction.html" title="Introduction">Introduction</a>
</h2></div></div></div>
<a name="boost_bimap.introduction.how_to_use_this_document"></a><h4>
<a name="id2586460"></a>
<a name="id554159"></a>
<a class="link" href="introduction.html#boost_bimap.introduction.how_to_use_this_document">How to use
this document</a>
</h4>
@@ -73,7 +73,7 @@
</p></dd>
</dl>
</div>
<div class="note"><table border="0" summary="Note">
<div class="note" title="Note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../doc/html/images/note.png"></td>
<th align="left">Note</th>
@@ -88,7 +88,7 @@
and enjoy!
</p></td></tr>
</table></div>
<div class="important"><table border="0" summary="Important">
<div class="important" title="Important"><table border="0" summary="Important">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../../../../doc/html/images/important.png"></td>
<th align="left">Important</th>
@@ -102,72 +102,72 @@
</p></td></tr>
</table></div>
<a name="boost_bimap.introduction.navigation"></a><h4>
<a name="id2585321"></a>
<a name="id554302"></a>
<a class="link" href="introduction.html#boost_bimap.introduction.navigation">Navigation</a>
</h4>
<p>
Used in combination with the configured browser key (usually Alt), the following
keys act as handy shortcuts for common navigation tasks.
</p>
<div class="itemizedlist"><ul type="disc">
<li>
<span class="bold"><strong>General</strong></span><div class="itemizedlist"><ul type="circle">
<li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
<span class="bold"><strong>General</strong></span><div class="itemizedlist"><ul class="itemizedlist" type="circle">
<li class="listitem">
<code class="literal"><span class="bold"><strong>p</strong></span></code> - Previous page
</li>
<li>
<li class="listitem">
<code class="literal"><span class="bold"><strong>n</strong></span></code> - Next page
</li>
<li>
<li class="listitem">
<code class="literal"><span class="bold"><strong>h</strong></span></code> - home
</li>
<li>
<li class="listitem">
<code class="literal"><span class="bold"><strong>u</strong></span></code> - Up
</li>
</ul></div>
</li>
<li>
<span class="bold"><strong>Main TOC</strong></span><div class="itemizedlist"><ul type="circle">
<li>
<li class="listitem">
<span class="bold"><strong>Main TOC</strong></span><div class="itemizedlist"><ul class="itemizedlist" type="circle">
<li class="listitem">
<code class="literal"><span class="bold"><strong>i</strong></span></code> - Introduction
</li>
<li>
<li class="listitem">
<code class="literal"><span class="bold"><strong>o</strong></span></code> - One minute tutorial
</li>
<li>
<li class="listitem">
<code class="literal"><span class="bold"><strong>t</strong></span></code> - The tutorial
</li>
<li>
<li class="listitem">
<code class="literal"><span class="bold"><strong>b</strong></span></code> - Bimap and Boost
</li>
<li>
<li class="listitem">
<code class="literal"><span class="bold"><strong>r</strong></span></code> - Reference
</li>
<li>
<li class="listitem">
<code class="literal"><span class="bold"><strong>c</strong></span></code> - Compiler specifics
</li>
<li>
<li class="listitem">
<code class="literal"><span class="bold"><strong>v</strong></span></code> - Performance
</li>
<li>
<li class="listitem">
<code class="literal"><span class="bold"><strong>e</strong></span></code> - Examples
</li>
<li>
<li class="listitem">
<code class="literal"><span class="bold"><strong>s</strong></span></code> - Test Suite
</li>
<li>
<li class="listitem">
<code class="literal"><span class="bold"><strong>f</strong></span></code> - Future work
</li>
<li>
<li class="listitem">
<code class="literal"><span class="bold"><strong>m</strong></span></code> - Release notes
</li>
<li>
<li class="listitem">
<code class="literal"><span class="bold"><strong>w</strong></span></code> - Rationale
</li>
<li>
<li class="listitem">
<code class="literal"><span class="bold"><strong>y</strong></span></code> - History
</li>
<li>
<li class="listitem">
<code class="literal"><span class="bold"><strong>a</strong></span></code> - Acknowledgements
</li>
</ul></div>

View File

@@ -3,8 +3,8 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>One minute tutorial</title>
<link rel="stylesheet" href="../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../index.html" title="Chapter 1. Boost.Bimap">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../index.html" title="Chapter 1. Boost.Bimap">
<link rel="up" href="../index.html" title="Chapter 1. Boost.Bimap">
<link rel="prev" href="introduction.html" title="Introduction">
<link rel="next" href="the_tutorial.html" title="The tutorial">
@@ -14,20 +14,20 @@
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="introduction.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="the_tutorial.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="section" title="One minute tutorial">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_bimap.one_minute_tutorial"></a><a class="link" href="one_minute_tutorial.html" title="One minute tutorial">One minute tutorial</a>
</h2></div></div></div>
<a name="boost_bimap.one_minute_tutorial.what_is_a_bimap_"></a><h4>
<a name="id2585613"></a>
<a name="id554565"></a>
<a class="link" href="one_minute_tutorial.html#boost_bimap.one_minute_tutorial.what_is_a_bimap_">What is a
bimap?</a>
</h4>
@@ -46,23 +46,22 @@
<p>
The following code creates an empty bimap container:
</p>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">,</span><span class="identifier">Y</span><span class="special">&gt;</span> <span class="identifier">bm_type</span><span class="special">;</span>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">,</span><span class="identifier">Y</span><span class="special">&gt;</span> <span class="identifier">bm_type</span><span class="special">;</span>
<span class="identifier">bm_type</span> <span class="identifier">bm</span><span class="special">;</span>
</pre>
<p>
Given this code, the following is the complete description of the resulting
bimap.
<sup>[<a name="id2585800" href="#ftn.id2585800" class="footnote">1</a>]</sup>
<sup>[<a name="id554727" href="#ftn.id554727" class="footnote">1</a>]</sup>
</p>
<div class="itemizedlist"><ul type="disc">
<li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
<code class="computeroutput"><span class="identifier">bm</span><span class="special">.</span><span class="identifier">left</span></code> is signature-compatible with <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">map</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">,</span><span class="identifier">Y</span><span class="special">&gt;</span></code>
</li>
<li>
<li class="listitem">
<code class="computeroutput"><span class="identifier">bm</span><span class="special">.</span><span class="identifier">right</span></code> is signature-compatible with <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">map</span><span class="special">&lt;</span><span class="identifier">Y</span><span class="special">,</span><span class="identifier">X</span><span class="special">&gt;</span></code>
</li>
<li>
<li class="listitem">
<code class="computeroutput"><span class="identifier">bm</span></code> is signature-compatible
with <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">set</span><span class="special">&lt;</span> <span class="identifier">relation</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">,</span><span class="identifier">Y</span><span class="special">&gt;</span> <span class="special">&gt;</span></code>
</li>
@@ -77,8 +76,7 @@
<p>
If we have any generic function that work with maps
</p>
<pre class="programlisting">
<span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">MapType</span> <span class="special">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">MapType</span> <span class="special">&gt;</span>
<span class="keyword">void</span> <span class="identifier">print_map</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">MapType</span> <span class="special">&amp;</span> <span class="identifier">m</span><span class="special">)</span>
<span class="special">{</span>
<span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">MapType</span><span class="special">::</span><span class="identifier">const_iterator</span> <span class="identifier">const_iterator</span><span class="special">;</span>
@@ -92,8 +90,7 @@
We can use the <span class="emphasis"><em>left map view</em></span> and the <span class="emphasis"><em>right map
view</em></span> with it
</p>
<pre class="programlisting">
<span class="identifier">bimap</span><span class="special">&lt;</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&gt;</span> <span class="identifier">bm</span><span class="special">;</span>
<pre class="programlisting"><span class="identifier">bimap</span><span class="special">&lt;</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&gt;</span> <span class="identifier">bm</span><span class="special">;</span>
<span class="special">...</span>
<span class="identifier">print_map</span><span class="special">(</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">left</span> <span class="special">);</span>
<span class="identifier">print_map</span><span class="special">(</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">right</span> <span class="special">);</span>
@@ -109,7 +106,7 @@
...
</pre>
<a name="boost_bimap.one_minute_tutorial.layout_of_the_relation_and_the_pairs_of_a_bimap"></a><h4>
<a name="id2636318"></a>
<a name="id555399"></a>
<a class="link" href="one_minute_tutorial.html#boost_bimap.one_minute_tutorial.layout_of_the_relation_and_the_pairs_of_a_bimap">Layout
of the relation and the pairs of a bimap</a>
</h4>
@@ -123,14 +120,13 @@
<span class="inlinemediaobject"><img src="../images/bimap/relation.and.pair.png" alt="relation.and.pair"></span>
</p>
<a name="boost_bimap.one_minute_tutorial.step_by_step"></a><h4>
<a name="id2636390"></a>
<a name="id555466"></a>
<a class="link" href="one_minute_tutorial.html#boost_bimap.one_minute_tutorial.step_by_step">Step by step</a>
</h4>
<p>
A convinience header is avaiable in the boost directory:
</p>
<pre class="programlisting">
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">bimap</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">bimap</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<p>
Lets define a bidirectional map between integers and strings:
@@ -140,8 +136,7 @@
<p>
</p>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">bimap</span><span class="special">&lt;</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&gt;</span> <span class="identifier">bm_type</span><span class="special">;</span>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">bimap</span><span class="special">&lt;</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&gt;</span> <span class="identifier">bm_type</span><span class="special">;</span>
<span class="identifier">bm_type</span> <span class="identifier">bm</span><span class="special">;</span>
</pre>
<p>
@@ -149,7 +144,7 @@
<p>
</p>
<a name="boost_bimap.one_minute_tutorial.the_collection_of_relations_view"></a><h4>
<a name="id2636546"></a>
<a name="id555616"></a>
<a class="link" href="one_minute_tutorial.html#boost_bimap.one_minute_tutorial.the_collection_of_relations_view">The
collection of relations view</a>
</h4>
@@ -163,8 +158,7 @@
<p>
</p>
<pre class="programlisting">
<span class="identifier">bm</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span> <span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">value_type</span><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="string">"one"</span> <span class="special">)</span> <span class="special">);</span>
<pre class="programlisting"><span class="identifier">bm</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span> <span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">value_type</span><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="string">"one"</span> <span class="special">)</span> <span class="special">);</span>
<span class="identifier">bm</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span> <span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">value_type</span><span class="special">(</span><span class="number">2</span><span class="special">,</span> <span class="string">"two"</span> <span class="special">)</span> <span class="special">);</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"There are "</span> <span class="special">&lt;&lt;</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="string">"relations"</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
@@ -183,7 +177,7 @@
<p>
</p>
<a name="boost_bimap.one_minute_tutorial.the_left_map_view"></a><h4>
<a name="id2637012"></a>
<a name="id556065"></a>
<a class="link" href="one_minute_tutorial.html#boost_bimap.one_minute_tutorial.the_left_map_view">The left
map view</a>
</h4>
@@ -198,8 +192,7 @@
<p>
</p>
<pre class="programlisting">
<span class="line_callout_bug"><a class="co" name="boost_bimap0co" href="one_minute_tutorial.html#boost_bimap0"><img src="../images/callouts/1.png" alt="1" border="0"></a></span><span class="keyword">typedef</span> <span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">left_map</span><span class="special">::</span><span class="identifier">const_iterator</span> <span class="identifier">left_const_iterator</span><span class="special">;</span>
<pre class="programlisting"><span class="line_callout_bug"><a class="co" name="boost_bimap0co" href="one_minute_tutorial.html#boost_bimap0"><img src="../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a></span><span class="keyword">typedef</span> <span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">left_map</span><span class="special">::</span><span class="identifier">const_iterator</span> <span class="identifier">left_const_iterator</span><span class="special">;</span>
<span class="keyword">for</span><span class="special">(</span> <span class="identifier">left_const_iterator</span> <span class="identifier">left_iter</span> <span class="special">=</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">left</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">iend</span> <span class="special">=</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">left</span><span class="special">.</span><span class="identifier">end</span><span class="special">();</span>
<span class="identifier">left_iter</span> <span class="special">!=</span> <span class="identifier">iend</span><span class="special">;</span> <span class="special">++</span><span class="identifier">left_iter</span> <span class="special">)</span>
@@ -210,10 +203,10 @@
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">left_iter</span><span class="special">-&gt;</span><span class="identifier">first</span> <span class="special">&lt;&lt;</span> <span class="string">" --&gt; "</span> <span class="special">&lt;&lt;</span> <span class="identifier">left_iter</span><span class="special">-&gt;</span><span class="identifier">second</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
<span class="special">}</span>
<span class="line_callout_bug"><a class="co" name="boost_bimap1co" href="one_minute_tutorial.html#boost_bimap1"><img src="../images/callouts/2.png" alt="2" border="0"></a></span><span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">left_const_iterator</span> <span class="identifier">left_iter</span> <span class="special">=</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">left</span><span class="special">.</span><span class="identifier">find</span><span class="special">(</span><span class="number">2</span><span class="special">);</span>
<span class="line_callout_bug"><a class="co" name="boost_bimap1co" href="one_minute_tutorial.html#boost_bimap1"><img src="../../../../../doc/src/images/callouts/2.png" alt="2" border="0"></a></span><span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">left_const_iterator</span> <span class="identifier">left_iter</span> <span class="special">=</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">left</span><span class="special">.</span><span class="identifier">find</span><span class="special">(</span><span class="number">2</span><span class="special">);</span>
<span class="identifier">assert</span><span class="special">(</span> <span class="identifier">left_iter</span><span class="special">-&gt;</span><span class="identifier">second</span> <span class="special">==</span> <span class="string">"two"</span> <span class="special">);</span>
<span class="line_callout_bug"><a class="co" name="boost_bimap2co" href="one_minute_tutorial.html#boost_bimap2"><img src="../images/callouts/3.png" alt="3" border="0"></a></span><span class="identifier">bm</span><span class="special">.</span><span class="identifier">left</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span> <span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">left_value_type</span><span class="special">(</span> <span class="number">3</span><span class="special">,</span> <span class="string">"three"</span> <span class="special">)</span> <span class="special">);</span>
<span class="line_callout_bug"><a class="co" name="boost_bimap2co" href="one_minute_tutorial.html#boost_bimap2"><img src="../../../../../doc/src/images/callouts/3.png" alt="3" border="0"></a></span><span class="identifier">bm</span><span class="special">.</span><span class="identifier">left</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span> <span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">left_value_type</span><span class="special">(</span> <span class="number">3</span><span class="special">,</span> <span class="string">"three"</span> <span class="special">)</span> <span class="special">);</span>
</pre>
<p>
</p>
@@ -223,18 +216,18 @@
</p>
<div class="calloutlist"><table border="0" summary="Callout list">
<tr>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap0"></a><a href="#boost_bimap0co"><img src="../images/callouts/1.png" alt="1" border="0"></a> </p></td>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap0"></a><a href="#boost_bimap0co"><img src="../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a> </p></td>
<td valign="top" align="left"><p> The type of <code class="computeroutput"><span class="identifier">bm</span><span class="special">.</span><span class="identifier">left</span></code> is <code class="computeroutput"><span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">left_map</span></code>
and the type of <code class="computeroutput"><span class="identifier">bm</span><span class="special">.</span><span class="identifier">right</span></code> is <code class="computeroutput"><span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">right_map</span></code>
</p></td>
</tr>
<tr>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap1"></a><a href="#boost_bimap1co"><img src="../images/callouts/2.png" alt="2" border="0"></a> </p></td>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap1"></a><a href="#boost_bimap1co"><img src="../../../../../doc/src/images/callouts/2.png" alt="2" border="0"></a> </p></td>
<td valign="top" align="left"><p> <code class="computeroutput"><span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">left_</span></code>-type- can be used as a shortcut for
the more verbose <code class="computeroutput"><span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">left_map</span><span class="special">::</span></code>-type- </p></td>
</tr>
<tr>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap2"></a><a href="#boost_bimap2co"><img src="../images/callouts/3.png" alt="3" border="0"></a> </p></td>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap2"></a><a href="#boost_bimap2co"><img src="../../../../../doc/src/images/callouts/3.png" alt="3" border="0"></a> </p></td>
<td valign="top" align="left"><p> This line produces the same effect
of <code class="computeroutput"><span class="identifier">bm</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span> <span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">value_type</span><span class="special">(</span><span class="number">3</span><span class="special">,</span><span class="string">"three"</span><span class="special">)</span> <span class="special">);</span></code> </p></td>
</tr>
@@ -244,7 +237,7 @@
<p>
</p>
<a name="boost_bimap.one_minute_tutorial.the_right_map_view"></a><h4>
<a name="id2637765"></a>
<a name="id556790"></a>
<a class="link" href="one_minute_tutorial.html#boost_bimap.one_minute_tutorial.the_right_map_view">The right
map view</a>
</h4>
@@ -259,8 +252,7 @@
<p>
</p>
<pre class="programlisting">
<span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">right_const_iterator</span> <span class="identifier">right_iter</span> <span class="special">=</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">right</span><span class="special">.</span><span class="identifier">find</span><span class="special">(</span><span class="string">"two"</span><span class="special">);</span>
<pre class="programlisting"><span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">right_const_iterator</span> <span class="identifier">right_iter</span> <span class="special">=</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">right</span><span class="special">.</span><span class="identifier">find</span><span class="special">(</span><span class="string">"two"</span><span class="special">);</span>
<span class="comment">// right_iter-&gt;first : key : std::string
</span><span class="comment">// right_iter-&gt;second : data : int
@@ -271,7 +263,7 @@
<span class="identifier">bm</span><span class="special">.</span><span class="identifier">right</span><span class="special">.</span><span class="identifier">erase</span><span class="special">(</span><span class="string">"two"</span><span class="special">);</span>
<span class="line_callout_bug"><a class="co" name="boost_bimap3co" href="one_minute_tutorial.html#boost_bimap3"><img src="../images/callouts/1.png" alt="1" border="0"></a></span><span class="identifier">bm</span><span class="special">.</span><span class="identifier">right</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span> <span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">right_value_type</span><span class="special">(</span> <span class="string">"four"</span><span class="special">,</span> <span class="number">4</span> <span class="special">)</span> <span class="special">);</span>
<span class="line_callout_bug"><a class="co" name="boost_bimap3co" href="one_minute_tutorial.html#boost_bimap3"><img src="../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a></span><span class="identifier">bm</span><span class="special">.</span><span class="identifier">right</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span> <span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">right_value_type</span><span class="special">(</span> <span class="string">"four"</span><span class="special">,</span> <span class="number">4</span> <span class="special">)</span> <span class="special">);</span>
</pre>
<p>
</p>
@@ -280,7 +272,7 @@
<p>
</p>
<div class="calloutlist"><table border="0" summary="Callout list"><tr>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap3"></a><a href="#boost_bimap3co"><img src="../images/callouts/1.png" alt="1" border="0"></a> </p></td>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap3"></a><a href="#boost_bimap3co"><img src="../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a> </p></td>
<td valign="top" align="left"><p> This line produces the same effect of <code class="computeroutput"><span class="identifier">bm</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span> <span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">value_type</span><span class="special">(</span><span class="number">4</span><span class="special">,</span><span class="string">"four"</span><span class="special">)</span>
<span class="special">);</span></code> </p></td>
</tr></table></div>
@@ -289,7 +281,7 @@
<p>
</p>
<a name="boost_bimap.one_minute_tutorial.differences_with_std__map"></a><h4>
<a name="id2638220"></a>
<a name="id557230"></a>
<a class="link" href="one_minute_tutorial.html#boost_bimap.one_minute_tutorial.differences_with_std__map">Differences
with std::map</a>
</h4>
@@ -303,16 +295,14 @@
However dereferencing a <code class="computeroutput"><span class="identifier">bimap</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">,</span><span class="identifier">Y</span><span class="special">&gt;::</span><span class="identifier">left_iterator</span></code>
returns a type that is <span class="emphasis"><em>signature-compatible</em></span> with a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="identifier">X</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Y</span><span class="special">&gt;</span></code>
</p>
<pre class="programlisting">
<span class="identifier">bm</span><span class="special">.</span><span class="identifier">left</span><span class="special">.</span><span class="identifier">find</span><span class="special">(</span><span class="number">1</span><span class="special">)-&gt;</span><span class="identifier">second</span> <span class="special">=</span> <span class="string">"1"</span><span class="special">;</span> <span class="comment">// Compilation error
<pre class="programlisting"><span class="identifier">bm</span><span class="special">.</span><span class="identifier">left</span><span class="special">.</span><span class="identifier">find</span><span class="special">(</span><span class="number">1</span><span class="special">)-&gt;</span><span class="identifier">second</span> <span class="special">=</span> <span class="string">"1"</span><span class="special">;</span> <span class="comment">// Compilation error
</span></pre>
<p>
If you insert <code class="computeroutput"><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="string">"one"</span><span class="special">)</span></code> and <code class="computeroutput"><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="string">"1"</span><span class="special">)</span></code> in a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">map</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> the second insertion will have no effect.
In a <code class="computeroutput"><span class="identifier">bimap</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">,</span><span class="identifier">Y</span><span class="special">&gt;</span></code> both keys have to remain unique. The insertion
may fail in other situtions too. Lets see an example
</p>
<pre class="programlisting">
<span class="identifier">bm</span><span class="special">.</span><span class="identifier">clear</span><span class="special">();</span>
<pre class="programlisting"><span class="identifier">bm</span><span class="special">.</span><span class="identifier">clear</span><span class="special">();</span>
<span class="identifier">bm</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span> <span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">value_type</span><span class="special">(</span> <span class="number">1</span><span class="special">,</span> <span class="string">"one"</span> <span class="special">)</span> <span class="special">);</span>
@@ -322,7 +312,7 @@
<span class="identifier">assert</span><span class="special">(</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span> <span class="special">==</span> <span class="number">1</span> <span class="special">);</span>
</pre>
<a name="boost_bimap.one_minute_tutorial.a_simple_example"></a><h4>
<a name="id2638910"></a>
<a name="id557889"></a>
<a class="link" href="one_minute_tutorial.html#boost_bimap.one_minute_tutorial.a_simple_example">A simple example</a>
</h4>
<p>
@@ -337,8 +327,7 @@
<p>
</p>
<pre class="programlisting">
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">string</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">string</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">bimap</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
@@ -419,7 +408,7 @@
<code class="literal">Spain ends in position 2</code>
</pre>
<a name="boost_bimap.one_minute_tutorial.continuing_the_journey"></a><h4>
<a name="id2640226"></a>
<a name="id559435"></a>
<a class="link" href="one_minute_tutorial.html#boost_bimap.one_minute_tutorial.continuing_the_journey">Continuing
the journey</a>
</h4>
@@ -428,7 +417,7 @@
or read the <a class="link" href="reference.html" title="Reference">reference</a> section
of this documentation.
</p>
<div class="caution"><table border="0" summary="Caution">
<div class="caution" title="Caution"><table border="0" summary="Caution">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Caution]" src="../../../../../doc/html/images/caution.png"></td>
<th align="left">Caution</th>
@@ -445,7 +434,7 @@
</table></div>
<div class="footnotes">
<br><hr width="100" align="left">
<div class="footnote"><p><sup>[<a name="ftn.id2585800" href="#id2585800" class="para">1</a>] </sup>
<div class="footnote"><p><sup>[<a name="ftn.id554727" href="#id554727" class="para">1</a>] </sup>
A type is <span class="emphasis"><em>signature-compatible</em></span> with other type if
it has the same signature for functions and metadata. Preconditions, postconditions
and the order of operations need not be the same.

View File

@@ -3,8 +3,8 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Performance</title>
<link rel="stylesheet" href="../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../index.html" title="Chapter 1. Boost.Bimap">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../index.html" title="Chapter 1. Boost.Bimap">
<link rel="up" href="../index.html" title="Chapter 1. Boost.Bimap">
<link rel="prev" href="compiler_specifics.html" title="Compiler specifics">
<link rel="next" href="examples.html" title="Examples">
@@ -14,15 +14,15 @@
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="compiler_specifics.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="examples.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="section" title="Performance">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_bimap.performance"></a><a class="link" href="performance.html" title="Performance">Performance</a>
</h2></div></div></div>

View File

@@ -3,8 +3,8 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Rationale</title>
<link rel="stylesheet" href="../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../index.html" title="Chapter 1. Boost.Bimap">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../index.html" title="Chapter 1. Boost.Bimap">
<link rel="up" href="../index.html" title="Chapter 1. Boost.Bimap">
<link rel="prev" href="release_notes.html" title="Release notes">
<link rel="next" href="rationale/additional_features.html" title="Additional Features">
@@ -14,15 +14,15 @@
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="release_notes.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="rationale/additional_features.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="section" title="Rationale">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_bimap.rationale"></a><a class="link" href="rationale.html" title="Rationale">Rationale</a>
</h2></div></div></div>
@@ -46,7 +46,7 @@
of email flowed between Joaquin and Matias. The juiciest parts of the conversations
where extracted and rearranged here.
</p>
<div class="note"><table border="0" summary="Note">
<div class="note" title="Note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../doc/html/images/note.png"></td>
<th align="left">Note</th>
@@ -57,7 +57,7 @@
at developers.
</p></td></tr>
</table></div>
<div class="section" lang="en">
<div class="section" title="General Design">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_bimap.rationale.general_design"></a><a class="link" href="rationale.html#boost_bimap.rationale.general_design" title="General Design">General Design</a>
</h3></div></div></div>
@@ -79,8 +79,7 @@
The following interface is necessary for the <code class="literal">relation</code>
class:
</p>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="special">-</span><span class="identifier">unspecified</span><span class="special">-</span> <span class="identifier">TA</span><span class="special">;</span> <span class="keyword">typedef</span> <span class="special">-</span><span class="identifier">unspecified</span><span class="special">-</span> <span class="identifier">TB</span><span class="special">;</span>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="special">-</span><span class="identifier">unspecified</span><span class="special">-</span> <span class="identifier">TA</span><span class="special">;</span> <span class="keyword">typedef</span> <span class="special">-</span><span class="identifier">unspecified</span><span class="special">-</span> <span class="identifier">TB</span><span class="special">;</span>
<span class="identifier">TA</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">ai</span><span class="special">;</span> <span class="identifier">TB</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">bi</span><span class="special">;</span>
@@ -132,16 +131,16 @@
is very simple, and it is based heavily on the concepts of the STL. Given
a <code class="computeroutput"><span class="identifier">bimap</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">,</span><span class="identifier">B</span><span class="special">&gt;</span> <span class="identifier">bm</span></code>:
</p>
<div class="orderedlist"><ol type="1">
<li>
<div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem">
<code class="computeroutput"><span class="identifier">bm</span><span class="special">.</span><span class="identifier">left</span></code> is signature-compatible with a
<code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">map</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">,</span><span class="identifier">B</span><span class="special">&gt;</span></code>
</li>
<li>
<li class="listitem">
<code class="computeroutput"><span class="identifier">bm</span><span class="special">.</span><span class="identifier">right</span></code> is signature-compatible with a
<code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">map</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">,</span><span class="identifier">A</span><span class="special">&gt;</span></code>
</li>
<li>
<li class="listitem">
<code class="computeroutput"><span class="identifier">bm</span></code> is signature-compatible
with a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">set</span><span class="special">&lt;</span><span class="identifier">relation</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">,</span><span class="identifier">B</span><span class="special">&gt;</span> <span class="special">&gt;</span></code>
</li>
@@ -154,7 +153,7 @@
as being simple and powerful. This is the general design.
</p>
<a name="boost_bimap.rationale.general_design.relation_implementation"></a><h5>
<a name="id2748836"></a>
<a name="id666407"></a>
<a class="link" href="rationale.html#boost_bimap.rationale.general_design.relation_implementation">Relation
Implementation</a>
</h5>
@@ -169,8 +168,7 @@
has two references named first and second that bind to <code class="computeroutput"><span class="identifier">A</span></code>
and <code class="computeroutput"><span class="identifier">B</span></code>, or to <code class="computeroutput"><span class="identifier">B</span></code> and <code class="computeroutput"><span class="identifier">A</span></code>.
</p>
<pre class="programlisting">
<span class="identifier">relation</span><span class="special">&lt;</span><span class="identifier">TA</span><span class="special">,</span><span class="identifier">TB</span><span class="special">&gt;</span> <span class="identifier">r</span><span class="special">;</span>
<pre class="programlisting"><span class="identifier">relation</span><span class="special">&lt;</span><span class="identifier">TA</span><span class="special">,</span><span class="identifier">TB</span><span class="special">&gt;</span> <span class="identifier">r</span><span class="special">;</span>
<span class="identifier">const_reference_pair</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">,</span><span class="identifier">B</span><span class="special">&gt;</span> <span class="identifier">pba</span><span class="special">(</span><span class="identifier">r</span><span class="special">);</span>
<span class="identifier">const_reference_pair</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">,</span><span class="identifier">A</span><span class="special">&gt;</span> <span class="identifier">pbb</span><span class="special">(</span><span class="identifier">r</span><span class="special">);</span>
@@ -195,8 +193,7 @@
clause that is not currently in the standard but is very natural. The additional
clause imposes that if we have two classes:
</p>
<pre class="programlisting">
<span class="keyword">struct</span> <span class="identifier">class_a_b</span>
<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">class_a_b</span>
<span class="special">{</span>
<span class="identifier">Type1</span> <span class="identifier">name_a</span><span class="special">;</span>
<span class="identifier">Type2</span> <span class="identifier">name_b</span><span class="special">;</span>
@@ -245,7 +242,7 @@
both cases, because we require that the same code be compilable by any standards-compliant
compiler.
</p>
<div class="note"><table border="0" summary="Note">
<div class="note" title="Note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../doc/html/images/note.png"></td>
<th align="left">Note</th>
@@ -257,7 +254,7 @@
</p></td></tr>
</table></div>
<a name="boost_bimap.rationale.general_design.bimap_implementation"></a><h5>
<a name="id2749426"></a>
<a name="id666981"></a>
<a class="link" href="rationale.html#boost_bimap.rationale.general_design.bimap_implementation">Bimap
Implementation</a>
</h5>

View File

@@ -3,8 +3,8 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Additional Features</title>
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../../index.html" title="Chapter 1. Boost.Bimap">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter 1. Boost.Bimap">
<link rel="up" href="../rationale.html" title="Rationale">
<link rel="prev" href="../rationale.html" title="Rationale">
<link rel="next" href="code.html" title="Code">
@@ -14,21 +14,21 @@
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../rationale.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../rationale.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="code.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="section" title="Additional Features">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_bimap.rationale.additional_features"></a><a class="link" href="additional_features.html" title="Additional Features">Additional
Features</a>
</h3></div></div></div>
<a name="boost_bimap.rationale.additional_features.n_1__n_n__hashed_maps"></a><h5>
<a name="id2749714"></a>
<a name="id667261"></a>
<a class="link" href="additional_features.html#boost_bimap.rationale.additional_features.n_1__n_n__hashed_maps">N-1,
N-N, hashed maps</a>
</h5>
@@ -40,12 +40,12 @@
collection type of each key directly. In order to implement this feature,
we have to solve two problems:
</p>
<div class="itemizedlist"><ul type="disc">
<li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
The index types of the <code class="computeroutput"><span class="identifier">multi_index_container</span></code>
core now depends on the collection type used for each key.
</li>
<li>
<li class="listitem">
The map views now change their semantics according to the collection type
chosen.
</li>
@@ -60,7 +60,7 @@
<span class="inlinemediaobject"><img src="../../images/bimap/bimap.structures.png" alt="bimap.structures"></span>
</p>
<a name="boost_bimap.rationale.additional_features.collection_type_of_relation_constraints"></a><h5>
<a name="id2749822"></a>
<a name="id667368"></a>
<a class="link" href="additional_features.html#boost_bimap.rationale.additional_features.collection_type_of_relation_constraints">Collection
type of relation constraints</a>
</h5>
@@ -72,29 +72,29 @@
bases the collection type of relations on the left collection type, but the
user may choose between:
</p>
<div class="itemizedlist"><ul type="disc">
<li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
left_based
</li>
<li>
<li class="listitem">
right_based
</li>
<li>
<li class="listitem">
set_of_relation&lt;&gt;
</li>
<li>
<li class="listitem">
multiset_of_relation&lt;&gt;
</li>
<li>
<li class="listitem">
unordered_set_of_relation&lt;&gt;
</li>
<li>
<li class="listitem">
unordered_multiset_of_relation&lt;&gt;
</li>
<li>
<li class="listitem">
list_of
</li>
<li>
<li class="listitem">
vector_of
</li>
</ul></div>
@@ -104,7 +104,7 @@
uses further metaprogramming to define a new index if necessary.
</p>
<a name="boost_bimap.rationale.additional_features.tagged"></a><h5>
<a name="id2749910"></a>
<a name="id667455"></a>
<a class="link" href="additional_features.html#boost_bimap.rationale.additional_features.tagged">Tagged</a>
</h5>
<p>

View File

@@ -3,8 +3,8 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Code</title>
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../../index.html" title="Chapter 1. Boost.Bimap">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter 1. Boost.Bimap">
<link rel="up" href="../rationale.html" title="Rationale">
<link rel="prev" href="additional_features.html" title="Additional Features">
<link rel="next" href="the_student_and_the_mentor.html" title="The student and the mentor">
@@ -14,15 +14,15 @@
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="additional_features.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../rationale.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="the_student_and_the_mentor.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="section" title="Code">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_bimap.rationale.code"></a><a class="link" href="code.html" title="Code">Code</a>
</h3></div></div></div>
@@ -34,7 +34,7 @@
Library Requirement and Guidelines</a> as closely as possible.
</p>
<div class="table">
<a name="id2750025"></a><p class="title"><b>Table 1.10. folders in boost/bimap</b></p>
<a name="id667570"></a><p class="title"><b>Table 1.10. folders in boost/bimap</b></p>
<div class="table-contents"><table class="table" summary="folders in boost/bimap">
<colgroup>
<col>
@@ -125,7 +125,7 @@
</table></div>
</div>
<br class="table-break"><div class="table">
<a name="id2750155"></a><p class="title"><b>Table 1.11. folders in each folder</b></p>
<a name="id667700"></a><p class="title"><b>Table 1.11. folders in each folder</b></p>
<div class="table-contents"><table class="table" summary="folders in each folder">
<colgroup>
<col>

View File

@@ -3,8 +3,8 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>The student and the mentor</title>
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../../index.html" title="Chapter 1. Boost.Bimap">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter 1. Boost.Bimap">
<link rel="up" href="../rationale.html" title="Rationale">
<link rel="prev" href="code.html" title="Code">
<link rel="next" href="../history.html" title="History">
@@ -14,20 +14,20 @@
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="code.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../rationale.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../history.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="section" title="The student and the mentor">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_bimap.rationale.the_student_and_the_mentor"></a><a class="link" href="the_student_and_the_mentor.html" title="The student and the mentor">The
student and the mentor</a>
</h3></div></div></div>
<div class="tip"><table border="0" summary="Tip">
<div class="tip" title="Tip"><table border="0" summary="Tip">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../../../../../../doc/html/images/tip.png"></td>
<th align="left">Tip</th>
@@ -751,8 +751,7 @@
<p>
</p>
<pre class="programlisting">
<span class="identifier">relation</span><span class="special">&lt;</span><span class="identifier">TA</span><span class="special">,</span><span class="identifier">TB</span><span class="special">&gt;</span> <span class="identifier">r</span><span class="special">;</span>
<pre class="programlisting"><span class="identifier">relation</span><span class="special">&lt;</span><span class="identifier">TA</span><span class="special">,</span><span class="identifier">TB</span><span class="special">&gt;</span> <span class="identifier">r</span><span class="special">;</span>
<span class="identifier">const_reference_pair</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">,</span><span class="identifier">B</span><span class="special">&gt;</span> <span class="identifier">pba</span><span class="special">(</span><span class="identifier">r</span><span class="special">);</span>
<span class="identifier">const_reference_pair</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">,</span><span class="identifier">A</span><span class="special">&gt;</span> <span class="identifier">pbb</span><span class="special">(</span><span class="identifier">r</span><span class="special">);</span>
</pre>
@@ -1292,8 +1291,7 @@
<p>
</p>
<pre class="programlisting">
<span class="identifier">map_view</span> <span class="identifier">x</span><span class="special">=...;</span>
<pre class="programlisting"><span class="identifier">map_view</span> <span class="identifier">x</span><span class="special">=...;</span>
<span class="identifier">map_view</span> <span class="identifier">y</span><span class="special">=...;</span>
<span class="identifier">x</span><span class="special">=</span><span class="identifier">y</span><span class="special">;</span>
</pre>

View File

@@ -3,8 +3,8 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Reference</title>
<link rel="stylesheet" href="../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../index.html" title="Chapter 1. Boost.Bimap">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../index.html" title="Chapter 1. Boost.Bimap">
<link rel="up" href="../index.html" title="Chapter 1. Boost.Bimap">
<link rel="prev" href="bimap_and_boost/dependencies.html" title="Dependencies">
<link rel="next" href="reference/bimap_reference.html" title="Bimap Reference">
@@ -14,15 +14,15 @@
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="bimap_and_boost/dependencies.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="reference/bimap_reference.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="section" title="Reference">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_bimap.reference"></a><a class="link" href="reference.html" title="Reference">Reference</a>
</h2></div></div></div>
@@ -89,7 +89,7 @@
Views</a></span></dt>
</dl></dd>
</dl></div>
<div class="section" lang="en">
<div class="section" title="Headers">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_bimap.reference.headers"></a><a class="link" href="reference.html#boost_bimap.reference.headers" title="Headers">Headers</a>
</h3></div></div></div>
@@ -99,54 +99,54 @@
<p>
<span class="bold"><strong>Convenience</strong></span>
</p>
<div class="itemizedlist"><ul type="disc"><li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
"boost/bimap.hpp" <span class="emphasis"><em>(includes "boost/bimap/bimap.hpp"
and imports the bimap class to boost namespace)</em></span>
</li></ul></div>
<p>
<span class="bold"><strong>Container</strong></span>
</p>
<div class="itemizedlist"><ul type="disc"><li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
"boost/bimap/bimap.hpp" <span class="emphasis"><em>(includes "boost/bimap/set_of.hpp"
and "boost/bimap/unconstrained_set_of.hpp")</em></span>
</li></ul></div>
<p>
<span class="bold"><strong>Set Types</strong></span>
</p>
<div class="itemizedlist"><ul type="disc">
<li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
"boost/bimap/set_of.hpp"
</li>
<li>
<li class="listitem">
"boost/bimap/multiset_of.hpp"
</li>
<li>
<li class="listitem">
"boost/bimap/unordered_set_of.hpp"
</li>
<li>
<li class="listitem">
"boost/bimap/unordered_multiset_of.hpp"
</li>
<li>
<li class="listitem">
"boost/bimap/list_of.hpp"
</li>
<li>
<li class="listitem">
"boost/bimap/vector_of.hpp"
</li>
<li>
<li class="listitem">
"boost/bimap/unconstrained_set_of.hpp"
</li>
</ul></div>
<p>
<span class="bold"><strong>Boost Integration</strong></span>
</p>
<div class="itemizedlist"><ul type="disc">
<li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
"boost/bimap/support/lambda.hpp"
</li>
<li>
<li class="listitem">
"boost/bimap/property_map/set_support.hpp"
</li>
<li>
<li class="listitem">
"boost/bimap/property_map/unordered_set_support.hpp"
</li>
</ul></div>

View File

@@ -3,8 +3,8 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Bimap Reference</title>
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../../index.html" title="Chapter 1. Boost.Bimap">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter 1. Boost.Bimap">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="../reference.html" title="Reference">
<link rel="next" href="set_of_reference.html" title="set_of Reference">
@@ -14,15 +14,15 @@
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../reference.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="set_of_reference.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="section" title="Bimap Reference">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_bimap.reference.bimap_reference"></a><a class="link" href="bimap_reference.html" title="Bimap Reference">Bimap Reference</a>
</h3></div></div></div>
@@ -53,7 +53,7 @@
<dt><span class="section"><a href="bimap_reference.html#boost_bimap.reference.bimap_reference.class_template_bimap.serialization">Serialization</a></span></dt>
</dl></dd>
</dl></div>
<div class="section" lang="en">
<div class="section" title="View concepts">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_bimap.reference.bimap_reference.view_concepts"></a><a class="link" href="bimap_reference.html#boost_bimap.reference.bimap_reference.view_concepts" title="View concepts">View
concepts</a>
@@ -79,25 +79,25 @@
(such as uniqueness of elements). The global operations performed jointly
in the any view can be reduced to six primitives:
</p>
<div class="itemizedlist"><ul type="disc">
<li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
copying
</li>
<li>
<li class="listitem">
insertion of an element
</li>
<li>
<li class="listitem">
hinted insertion, where a pre-existing element is suggested in order
to improve the efficiency of the operation
</li>
<li>
<li class="listitem">
deletion of an element
</li>
<li>
<li class="listitem">
replacement of the value of an element, which may trigger the rearrangement
of this element in one or more views, or may forbid the replacement
</li>
<li>
<li class="listitem">
modification of an element, and its subsequent rearrangement/banning
by the various views
</li>
@@ -113,7 +113,7 @@
</div>
<a name="complexity_signature_explanation"></a><p>
</p>
<div class="section" lang="en">
<div class="section" title="Complexity signature">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_bimap.reference.bimap_reference.complexity_signature"></a><a class="link" href="bimap_reference.html#boost_bimap.reference.bimap_reference.complexity_signature" title="Complexity signature">Complexity
signature</a>
@@ -129,28 +129,28 @@
its complexity signature, consisting of the following associated functions
on the number of elements:
</p>
<div class="itemizedlist"><ul type="disc">
<li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
<code class="computeroutput"><span class="identifier">c</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span></code>:
copying
</li>
<li>
<li class="listitem">
<code class="computeroutput"><span class="identifier">i</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span></code>:
insertion
</li>
<li>
<li class="listitem">
<code class="computeroutput"><span class="identifier">h</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span></code>:
hinted insertion
</li>
<li>
<li class="listitem">
<code class="computeroutput"><span class="identifier">d</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span></code>:
deletion
</li>
<li>
<li class="listitem">
<code class="computeroutput"><span class="identifier">r</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span></code>:
replacement
</li>
<li>
<li class="listitem">
<code class="computeroutput"><span class="identifier">m</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span></code>:
modifying
</li>
@@ -168,22 +168,22 @@
to denote the above view, the complexity of insertion will now be <code class="computeroutput"><span class="identifier">O</span><span class="special">(</span><span class="identifier">i_l</span><span class="special">(</span><span class="identifier">n</span><span class="special">)+</span><span class="identifier">i_r</span><span class="special">(</span><span class="identifier">n</span><span class="special">)+</span><span class="identifier">i_a</span><span class="special">(</span><span class="identifier">n</span><span class="special">))</span></code>.
To abbreviate the notation, we adopt the following definitions:
</p>
<div class="itemizedlist"><ul type="disc">
<li><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="identifier">c_l</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">c_r</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">[</span> <span class="special">+</span>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem"><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="identifier">c_l</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">c_r</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">[</span> <span class="special">+</span>
<span class="identifier">c_a</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">]</span></code></li>
<li><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="identifier">i_l</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">i_r</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">[</span> <span class="special">+</span>
<li class="listitem"><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="identifier">i_l</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">i_r</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">[</span> <span class="special">+</span>
<span class="identifier">i_a</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">]</span></code></li>
<li><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="identifier">h_l</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">h_r</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">[</span> <span class="special">+</span>
<li class="listitem"><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="identifier">h_l</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">h_r</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">[</span> <span class="special">+</span>
<span class="identifier">h_a</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">]</span></code></li>
<li><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="identifier">d_l</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">d_r</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">[</span> <span class="special">+</span>
<li class="listitem"><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="identifier">d_l</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">d_r</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">[</span> <span class="special">+</span>
<span class="identifier">d_a</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">]</span></code></li>
<li><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="identifier">r_l</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">r_r</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">[</span> <span class="special">+</span>
<li class="listitem"><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="identifier">r_l</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">r_r</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">[</span> <span class="special">+</span>
<span class="identifier">r_a</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">]</span></code></li>
<li><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="identifier">m_l</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">m_r</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">[</span> <span class="special">+</span>
<li class="listitem"><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="identifier">m_l</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">m_r</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">[</span> <span class="special">+</span>
<span class="identifier">m_a</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">]</span></code></li>
</ul></div>
</div>
<div class="section" lang="en">
<div class="section" title="Set type specification">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_bimap.reference.bimap_reference.set_type_specification"></a><a class="link" href="bimap_reference.html#boost_bimap.reference.bimap_reference.set_type_specification" title="Set type specification">Set
type specification</a>
@@ -377,7 +377,7 @@
</tbody>
</table></div>
</div>
<div class="section" lang="en">
<div class="section" title="Tags">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_bimap.reference.bimap_reference.tags"></a><a class="link" href="bimap_reference.html#boost_bimap.reference.bimap_reference.tags" title="Tags">Tags</a>
</h4></div></div></div>
@@ -387,13 +387,12 @@
uses the tagged idiom to let the user specify this tags.
</p>
</div>
<div class="section" lang="en">
<div class="section" title='Header "boost/bimap/bimap.hpp" synopsis'>
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_bimap.reference.bimap_reference.header__boost_bimap_bimap_hpp__synopsis"></a><a class="link" href="bimap_reference.html#boost_bimap.reference.bimap_reference.header__boost_bimap_bimap_hpp__synopsis" title='Header "boost/bimap/bimap.hpp" synopsis'>Header
"boost/bimap/bimap.hpp" synopsis</a>
</h4></div></div></div>
<pre class="programlisting">
<span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
<span class="keyword">namespace</span> <span class="identifier">bimaps</span> <span class="special">{</span>
<span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">Type</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Tag</span> <span class="special">&gt;</span>
@@ -485,7 +484,7 @@
</span><span class="special">}</span> <span class="comment">// namespace boost
</span></pre>
</div>
<div class="section" lang="en">
<div class="section" title="Class template bimap">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_bimap.reference.bimap_reference.class_template_bimap"></a><a class="link" href="bimap_reference.html#boost_bimap.reference.bimap_reference.class_template_bimap" title="Class template bimap">Class
template bimap</a>
@@ -507,7 +506,7 @@
<p>
This is the main component of Boost.Bimap.
</p>
<div class="section" lang="en">
<div class="section" title="Complexity">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_bimap.reference.bimap_reference.class_template_bimap.complexity"></a><a class="link" href="bimap_reference.html#boost_bimap.reference.bimap_reference.class_template_bimap.complexity" title="Complexity">Complexity</a>
</h5></div></div></div>
@@ -516,7 +515,7 @@
we adopt the scheme outlined in the complexity signature section.
</p>
</div>
<div class="section" lang="en">
<div class="section" title="Instantiation types">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_bimap.reference.bimap_reference.class_template_bimap.instantiation_types"></a><a class="link" href="bimap_reference.html#boost_bimap.reference.bimap_reference.class_template_bimap.instantiation_types" title="Instantiation types">Instantiation
types</a>
@@ -525,32 +524,31 @@
<code class="computeroutput"><span class="identifier">bimap</span></code> is instantiated
with the following types:
</p>
<div class="orderedlist"><ol type="1">
<li>
<div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem">
LeftCollectionType and RightCollectionType are collection type specifications
optionally tagged, or any type optionally tagged, in which case that
side acts as a set.
</li>
<li>
<li class="listitem">
AdditionalParameter_{1/2} can be any ordered subset of:
<div class="itemizedlist"><ul type="disc">
<li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
CollectionTypeOfRelation specification
</li>
<li>
<li class="listitem">
Allocator
</li>
</ul></div>
</li>
</ol></div>
</div>
<div class="section" lang="en">
<div class="section" title="Nested types">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_bimap.reference.bimap_reference.class_template_bimap.nested_types"></a><a class="link" href="bimap_reference.html#boost_bimap.reference.bimap_reference.class_template_bimap.nested_types" title="Nested types">Nested
types</a>
</h5></div></div></div>
<pre class="programlisting">
<span class="identifier">left_tag</span><span class="special">,</span> <span class="identifier">right_tag</span>
<pre class="programlisting"><span class="identifier">left_tag</span><span class="special">,</span> <span class="identifier">right_tag</span>
</pre>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -563,8 +561,7 @@
<p>
</p>
</blockquote></div>
<pre class="programlisting">
<span class="identifier">left_key_type</span><span class="special">,</span> <span class="identifier">right_key_type</span>
<pre class="programlisting"><span class="identifier">left_key_type</span><span class="special">,</span> <span class="identifier">right_key_type</span>
</pre>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -577,8 +574,7 @@
<p>
</p>
</blockquote></div>
<pre class="programlisting">
<span class="identifier">left_data_type</span><span class="special">,</span> <span class="identifier">right_data_type</span>
<pre class="programlisting"><span class="identifier">left_data_type</span><span class="special">,</span> <span class="identifier">right_data_type</span>
</pre>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -591,8 +587,7 @@
<p>
</p>
</blockquote></div>
<pre class="programlisting">
<span class="identifier">left_value_type</span><span class="special">,</span> <span class="identifier">right_value_type</span>
<pre class="programlisting"><span class="identifier">left_value_type</span><span class="special">,</span> <span class="identifier">right_value_type</span>
</pre>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -604,8 +599,7 @@
<p>
</p>
</blockquote></div>
<pre class="programlisting">
<span class="identifier">left_iterator</span><span class="special">,</span> <span class="identifier">right_iterator</span>
<pre class="programlisting"><span class="identifier">left_iterator</span><span class="special">,</span> <span class="identifier">right_iterator</span>
<span class="identifier">left_const_iterator</span><span class="special">,</span> <span class="identifier">right_const_iterator</span>
</pre>
<div class="blockquote"><blockquote class="blockquote">
@@ -618,8 +612,7 @@
<p>
</p>
</blockquote></div>
<pre class="programlisting">
<span class="identifier">left_map</span><span class="special">,</span> <span class="identifier">right_map</span>
<pre class="programlisting"><span class="identifier">left_map</span><span class="special">,</span> <span class="identifier">right_map</span>
</pre>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -632,97 +625,92 @@
</p>
</blockquote></div>
</div>
<div class="section" lang="en">
<div class="section" title="Constructors, copy and assignment">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_bimap.reference.bimap_reference.class_template_bimap.constructors__copy_and_assignment"></a><a class="link" href="bimap_reference.html#boost_bimap.reference.bimap_reference.class_template_bimap.constructors__copy_and_assignment" title="Constructors, copy and assignment">Constructors,
copy and assignment</a>
</h5></div></div></div>
<pre class="programlisting">
<span class="identifier">bimap</span><span class="special">();</span>
<pre class="programlisting"><span class="identifier">bimap</span><span class="special">();</span>
</pre>
<div class="itemizedlist"><ul type="disc">
<li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
<span class="bold"><strong>Effects:</strong></span> Constructs an empty <code class="computeroutput"><span class="identifier">bimap</span></code>.
</li>
<li>
<li class="listitem">
<span class="bold"><strong>Complexity:</strong></span> Constant.
</li>
</ul></div>
<pre class="programlisting">
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">InputIterator</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">InputIterator</span><span class="special">&gt;</span>
<span class="identifier">bimap</span><span class="special">(</span><span class="identifier">InputIterator</span> <span class="identifier">first</span><span class="special">,</span><span class="identifier">InputIterator</span> <span class="identifier">last</span><span class="special">);</span>
</pre>
<div class="itemizedlist"><ul type="disc">
<li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
<span class="bold"><strong>Requires: </strong></span><code class="computeroutput"><span class="identifier">InputIterator</span></code>
is a model of Input Iterator over elements of type <code class="computeroutput"><span class="identifier">relation</span></code>
or a type convertible to <code class="computeroutput"><span class="identifier">relation</span></code>.
last is reachable from <code class="computeroutput"><span class="identifier">first</span></code>.
</li>
<li>
<li class="listitem">
<span class="bold"><strong>Effects:</strong></span> Constructs an empty <code class="computeroutput"><span class="identifier">bimap</span></code> and fills it with the elements
in the range <code class="computeroutput"><span class="special">[</span><span class="identifier">first</span><span class="special">,</span><span class="identifier">last</span><span class="special">)</span></code>. Insertion of each element may or
may not succeed depending on acceptance by the collection types of
the <code class="computeroutput"><span class="identifier">bimap</span></code>.
</li>
<li>
<li class="listitem">
<a class="link" href="bimap_reference.html#complexity_signature_explanation"><span class="bold"><strong>Complexity:</strong></span></a>
O(m*H(m)), where m is the number of elements in <code class="computeroutput"><span class="special">[</span><span class="identifier">first</span><span class="special">,</span><span class="identifier">last</span><span class="special">)</span></code>.
</li>
</ul></div>
<pre class="programlisting">
<span class="identifier">bimap</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">bimap</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
<pre class="programlisting"><span class="identifier">bimap</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">bimap</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
</pre>
<div class="itemizedlist"><ul type="disc">
<li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
<span class="bold"><strong>Effects:</strong></span> Constructs a copy of x, copying
its elements as well as its internal objects (key extractors, comparison
objects, allocator.)
</li>
<li>
<li class="listitem">
<span class="bold"><strong>Postconditions:</strong></span><code class="computeroutput"><span class="special">*</span><span class="keyword">this</span> <span class="special">==</span> <span class="identifier">x</span></code>. The order of the views of the
<code class="computeroutput"><span class="identifier">bimap</span></code> is preserved
as well.
</li>
<li>
<li class="listitem">
<span class="bold"><strong>Complexity:</strong></span> O(x.size()*log(x.size())
+ C(x.size()))
</li>
</ul></div>
<pre class="programlisting">
<span class="special">~</span><span class="identifier">bimap</span><span class="special">()</span>
<pre class="programlisting"><span class="special">~</span><span class="identifier">bimap</span><span class="special">()</span>
</pre>
<div class="itemizedlist"><ul type="disc">
<li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
<span class="bold"><strong>Effects:</strong></span> Destroys the <code class="computeroutput"><span class="identifier">bimap</span></code> and all the elements contained.
The order in which the elements are destroyed is not specified.
</li>
<li>
<li class="listitem">
<span class="bold"><strong>Complexity:</strong></span> O(n).
</li>
</ul></div>
<pre class="programlisting">
<span class="identifier">bimap</span><span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">=(</span><span class="keyword">const</span> <span class="identifier">bimap</span><span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
<pre class="programlisting"><span class="identifier">bimap</span><span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">=(</span><span class="keyword">const</span> <span class="identifier">bimap</span><span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
</pre>
<div class="itemizedlist"><ul type="disc">
<li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
<span class="bold"><strong>Effects:</strong></span> Replaces the elements and
internal objects of the <code class="computeroutput"><span class="identifier">bimap</span></code>
with copies from x.
</li>
<li>
<li class="listitem">
<span class="bold"><strong>Postconditions:</strong></span><code class="computeroutput"><span class="special">*</span><span class="keyword">this</span><span class="special">==</span><span class="identifier">x</span></code>. The order on the views of the
<code class="computeroutput"><span class="identifier">bimap</span></code> is preserved
as well.
</li>
<li>
<li class="listitem">
<span class="bold"><strong>Returns: </strong></span><code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
</li>
<li>
<li class="listitem">
<span class="bold"><strong>Complexity:</strong></span> O(n + x.size()*log(x.size())
+ C(x.size())).
</li>
<li>
<li class="listitem">
<span class="bold"><strong>Exception safety:</strong></span> Strong, provided
the copy and assignment operations of the types of <code class="computeroutput"><span class="identifier">ctor_args_list</span></code>
do not throw.
@@ -731,7 +719,7 @@
</div>
<a name="reference_projection_operations"></a><p>
</p>
<div class="section" lang="en">
<div class="section" title="Projection operations">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_bimap.reference.bimap_reference.class_template_bimap.projection_operations"></a><a class="link" href="bimap_reference.html#boost_bimap.reference.bimap_reference.class_template_bimap.projection_operations" title="Projection operations">Projection
operations</a>
@@ -741,164 +729,158 @@
v1 and v2, we say than an v1-iterator it1 and an v2-iterator it2 are
equivalent if:
</p>
<div class="itemizedlist"><ul type="disc">
<li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
<code class="computeroutput"><span class="identifier">it1</span> <span class="special">==</span>
<span class="identifier">i1</span><span class="special">.</span><span class="identifier">end</span><span class="special">()</span></code>
AND <code class="computeroutput"><span class="identifier">it2</span> <span class="special">==</span>
<span class="identifier">i2</span><span class="special">.</span><span class="identifier">end</span><span class="special">()</span></code>,
</li>
<li>
<li class="listitem">
OR <code class="computeroutput"><span class="identifier">it1</span></code> and <code class="computeroutput"><span class="identifier">it2</span></code> point to the same element.
</li>
</ul></div>
<pre class="programlisting">
<span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">IteratorType</span> <span class="special">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">IteratorType</span> <span class="special">&gt;</span>
<span class="identifier">left_iterator</span> <span class="identifier">project_left</span><span class="special">(</span><span class="identifier">IteratorType</span> <span class="identifier">iter</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">IteratorType</span> <span class="special">&gt;</span>
<span class="identifier">left_const_iterator</span> <span class="identifier">project_left</span><span class="special">(</span><span class="identifier">IteratorType</span> <span class="identifier">iter</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
</pre>
<div class="itemizedlist"><ul type="disc">
<li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
<span class="bold"><strong>Requires:</strong></span><code class="computeroutput"><span class="identifier">IteratorType</span></code>
is a bimap view iterator. it is a valid iterator of some view of <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
(i.e. does not refer to some other <code class="computeroutput"><span class="identifier">bimap</span></code>.)
</li>
<li>
<li class="listitem">
<span class="bold"><strong>Effects:</strong></span> Returns a left map view iterator
equivalent to <code class="computeroutput"><span class="identifier">it</span></code>.
</li>
<li>
<li class="listitem">
<span class="bold"><strong>Complexity:</strong></span> Constant.
</li>
<li>
<li class="listitem">
<span class="bold"><strong>Exception safety:</strong></span> nothrow.
</li>
</ul></div>
<pre class="programlisting">
<span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">IteratorType</span> <span class="special">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">IteratorType</span> <span class="special">&gt;</span>
<span class="identifier">right_iterator</span> <span class="identifier">project_right</span><span class="special">(</span><span class="identifier">IteratorType</span> <span class="identifier">iter</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">IteratorType</span> <span class="special">&gt;</span>
<span class="identifier">right_const_iterator</span> <span class="identifier">project_right</span><span class="special">(</span><span class="identifier">IteratorType</span> <span class="identifier">iter</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
</pre>
<div class="itemizedlist"><ul type="disc">
<li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
<span class="bold"><strong>Requires:</strong></span><code class="computeroutput"><span class="identifier">IteratorType</span></code>
is a bimap view iterator. it is a valid iterator of some view of <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
(i.e. does not refer to some other <code class="computeroutput"><span class="identifier">bimap</span></code>.)
</li>
<li>
<li class="listitem">
<span class="bold"><strong>Effects:</strong></span> Returns a right map view
iterator equivalent to <code class="computeroutput"><span class="identifier">it</span></code>.
</li>
<li>
<li class="listitem">
<span class="bold"><strong>Complexity:</strong></span> Constant.
</li>
<li>
<li class="listitem">
<span class="bold"><strong>Exception safety:</strong></span> nothrow.
</li>
</ul></div>
<pre class="programlisting">
<span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">IteratorType</span> <span class="special">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">IteratorType</span> <span class="special">&gt;</span>
<span class="identifier">iterator</span> <span class="identifier">project_up</span><span class="special">(</span><span class="identifier">IteratorType</span> <span class="identifier">iter</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">IteratorType</span> <span class="special">&gt;</span>
<span class="identifier">const_iterator</span> <span class="identifier">project_up</span><span class="special">(</span><span class="identifier">IteratorType</span> <span class="identifier">iter</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
</pre>
<div class="itemizedlist"><ul type="disc">
<li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
<span class="bold"><strong>Requires:</strong></span><code class="computeroutput"><span class="identifier">IteratorType</span></code>
is a bimap view iterator. it is a valid iterator of some view of <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
(i.e. does not refer to some other <code class="computeroutput"><span class="identifier">bimap</span></code>.)
</li>
<li>
<li class="listitem">
<span class="bold"><strong>Effects:</strong></span> Returns a collection of relations
view iterator equivalent to <code class="computeroutput"><span class="identifier">it</span></code>.
</li>
<li>
<li class="listitem">
<span class="bold"><strong>Complexity:</strong></span> Constant.
</li>
<li>
<li class="listitem">
<span class="bold"><strong>Exception safety:</strong></span> nothrow.
</li>
</ul></div>
</div>
<a name="reference_support_for_used_defined_names"></a><p>
</p>
<div class="section" lang="en">
<div class="section" title="Support for user defined names">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_bimap.reference.bimap_reference.class_template_bimap.support_for_user_defined_names"></a><a class="link" href="bimap_reference.html#boost_bimap.reference.bimap_reference.class_template_bimap.support_for_user_defined_names" title="Support for user defined names">Support
for user defined names</a>
</h5></div></div></div>
<pre class="programlisting">
<span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">Tag</span> <span class="special">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">Tag</span> <span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">map_by</span><span class="special">;</span>
</pre>
<div class="itemizedlist"><ul type="disc">
<li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
<code class="computeroutput"><span class="identifier">map_by</span><span class="special">&lt;</span><span class="identifier">Tag</span><span class="special">&gt;::</span><span class="identifier">type</span></code> yields the type of the map view
tagged with <code class="computeroutput"><span class="identifier">Tag</span></code>. <code class="computeroutput"><span class="identifier">map_by</span><span class="special">&lt;</span><span class="identifier">Tag</span><span class="special">&gt;::</span></code><span class="emphasis"><em>-type
name-</em></span> is the same as <code class="computeroutput"><span class="identifier">map_by</span><span class="special">&lt;</span><span class="identifier">Tag</span><span class="special">&gt;::</span><span class="identifier">type</span><span class="special">::</span></code><span class="emphasis"><em>-type name-</em></span>.
</li>
<li>
<li class="listitem">
<span class="bold"><strong>Requires: </strong></span><code class="computeroutput"><span class="identifier">Tag</span></code>
is a valid user defined name of the bimap.
</li>
</ul></div>
<pre class="programlisting">
<span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">Tag</span> <span class="special">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">Tag</span> <span class="special">&gt;</span>
<span class="identifier">map_by</span><span class="special">&lt;</span><span class="identifier">Tag</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">by</span><span class="special">();</span>
<span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">Tag</span> <span class="special">&gt;</span>
<span class="keyword">const</span> <span class="identifier">map_by</span><span class="special">&lt;</span><span class="identifier">Tag</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="special">&amp;</span> <span class="identifier">by</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
</pre>
<div class="itemizedlist"><ul type="disc">
<li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
<span class="bold"><strong>Requires: </strong></span><code class="computeroutput"><span class="identifier">Tag</span></code>
is a valid user defined name of the bimap.
</li>
<li>
<li class="listitem">
<span class="bold"><strong>Effects:</strong></span> Returns a reference to the
map view tagged with <code class="computeroutput"><span class="identifier">Tag</span></code>
held by <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
</li>
<li>
<li class="listitem">
<span class="bold"><strong>Complexity:</strong></span> Constant.
</li>
<li>
<li class="listitem">
<span class="bold"><strong>Exception safety:</strong></span> nothrow.
</li>
</ul></div>
<pre class="programlisting">
<span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">Tag</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">IteratorType</span> <span class="special">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">Tag</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">IteratorType</span> <span class="special">&gt;</span>
<span class="identifier">map_by</span><span class="special">&lt;</span><span class="identifier">Tag</span><span class="special">&gt;::</span><span class="identifier">iterator</span> <span class="identifier">project</span><span class="special">(</span><span class="identifier">IteratorType</span> <span class="identifier">iter</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">Tag</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">IteratorType</span> <span class="special">&gt;</span>
<span class="identifier">map_by</span><span class="special">&lt;</span><span class="identifier">Tag</span><span class="special">&gt;::</span><span class="identifier">const_iterator</span> <span class="identifier">project</span><span class="special">(</span><span class="identifier">IteratorType</span> <span class="identifier">iter</span><span class="special">)</span> <span class="keyword">const</span>
</pre>
<div class="itemizedlist"><ul type="disc">
<li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
<span class="bold"><strong>Requires: </strong></span><code class="computeroutput"><span class="identifier">Tag</span></code>
is a valid user defined name of the bimap. <code class="computeroutput"><span class="identifier">IteratorType</span></code>
is a bimap view iterator. it is a valid iterator of some view of <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
(i.e. does not refer to some other <code class="computeroutput"><span class="identifier">bimap</span></code>.)
</li>
<li>
<li class="listitem">
<span class="bold"><strong>Effects:</strong></span> Returns a reference to the
map view tagged with <code class="computeroutput"><span class="identifier">Tag</span></code>
held by <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
</li>
<li>
<li class="listitem">
<span class="bold"><strong>Complexity:</strong></span> Constant.
</li>
<li>
<li class="listitem">
<span class="bold"><strong>Exception safety:</strong></span> nothrow.
</li>
</ul></div>
</div>
<div class="section" lang="en">
<div class="section" title="Serialization">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_bimap.reference.bimap_reference.class_template_bimap.serialization"></a><a class="link" href="bimap_reference.html#boost_bimap.reference.bimap_reference.class_template_bimap.serialization" title="Serialization">Serialization</a>
</h5></div></div></div>
@@ -925,7 +907,7 @@
is <span class="emphasis"><em>serialization-compatible</em></span> with <code class="computeroutput"><span class="identifier">p</span></code>
if
</p>
<div class="itemizedlist"><ul type="disc"><li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
<code class="computeroutput"><span class="identifier">p</span><span class="special">(</span><span class="identifier">x</span><span class="special">,</span><span class="identifier">y</span><span class="special">)</span> <span class="special">==</span> <span class="identifier">q</span><span class="special">(</span><span class="identifier">x</span></code>'<code class="computeroutput"><span class="special">,</span><span class="identifier">y</span></code>'<code class="computeroutput"><span class="special">)</span></code>
</li></ul></div>
<p>
@@ -940,12 +922,12 @@
to an output archive (XML archive) ar.
</p>
</div>
<div class="itemizedlist"><ul type="disc">
<li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
<span class="bold"><strong>Requires:</strong></span> Value is serializable (XML-serializable).
Additionally, each of the views of b can impose other requirements.
</li>
<li>
<li class="listitem">
<span class="bold"><strong>Exception safety:</strong></span> Strong with respect
to <code class="computeroutput"><span class="identifier">b</span></code>. If an exception
is thrown, ar may be left in an inconsistent state.
@@ -958,13 +940,13 @@
archive) ar.
</p>
</div>
<div class="itemizedlist"><ul type="disc">
<li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
<span class="bold"><strong>Requires:</strong></span> Value is serializable (XML-serializable).
Additionally, each of the views of <code class="computeroutput"><span class="identifier">b</span></code>'
can impose other requirements.
</li>
<li>
<li class="listitem">
<span class="bold"><strong>Exception safety:</strong></span> Basic. If an exception
is thrown, ar may be left in an inconsistent state.
</li>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -3,8 +3,8 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>unconstrained_set_of Reference</title>
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../../index.html" title="Chapter 1. Boost.Bimap">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter 1. Boost.Bimap">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="vector_of_reference.html" title="vector_of Reference">
<link rel="next" href="../compiler_specifics.html" title="Compiler specifics">
@@ -14,15 +14,15 @@
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="vector_of_reference.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../compiler_specifics.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="section" title="unconstrained_set_of Reference">
<div class="titlepage"><div><div><h3 class="title">
<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
Reference</a>
@@ -38,13 +38,12 @@
<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>
</dl></dd>
</dl></div>
<div class="section" lang="en">
<div class="section" title='Header "boost/bimap/unconstrained_set_of.hpp" synopsis'>
<div class="titlepage"><div><div><h4 class="title">
<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
"boost/bimap/unconstrained_set_of.hpp" synopsis</a>
</h4></div></div></div>
<pre class="programlisting">
<span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
<span class="keyword">namespace</span> <span class="identifier">bimaps</span> <span class="special">{</span>
@@ -58,7 +57,7 @@
</span><span class="special">}</span> <span class="comment">// namespace boost
</span></pre>
</div>
<div class="section" lang="en">
<div class="section" title="unconstrained_set_of Views">
<div class="titlepage"><div><div><h4 class="title">
<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
Views</a>
@@ -73,8 +72,7 @@
of these kind of view boost the bimap performance but the view can not
be accessed. An unconstrained view is an empty class.
</p>
<pre class="programlisting">
<span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
<span class="keyword">namespace</span> <span class="identifier">bimaps</span> <span class="special">{</span>
<span class="keyword">namespace</span> <span class="identifier">views</span> <span class="special">{</span>
@@ -94,15 +92,13 @@
<p>
In the set view:
</p>
<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>
<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>
<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>
</pre>
<p>
In the left map view:
</p>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="identifier">Left</span> <span class="identifier">key_type</span><span class="special">;</span>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">Left</span> <span class="identifier">key_type</span><span class="special">;</span>
<span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">data_type</span><span class="special">;</span>
<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>
@@ -110,15 +106,14 @@
<p>
In the right map view:
</p>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">key_type</span><span class="special">;</span>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">key_type</span><span class="special">;</span>
<span class="keyword">typedef</span> <span class="identifier">Left</span> <span class="identifier">data_type</span><span class="special">;</span>
<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>
</pre>
<a name="unconstrained_set_of_complexity_signature"></a><p>
</p>
<div class="section" lang="en">
<div class="section" title="Complexity signature">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_bimap.reference.unconstrained_set_of_reference.unconstrained_set_of_views.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
signature</a>
@@ -129,28 +124,28 @@
the user, but the formulas to find the order of an operation for a bimap
hold with the following definitions. The complexity signature of a <code class="computeroutput"><span class="identifier">unconstrained_set_of</span></code> view is:
</p>
<div class="itemizedlist"><ul type="disc">
<li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
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>
</li>
<li>
<li class="listitem">
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>
</li>
<li>
<li class="listitem">
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>
</li>
<li>
<li class="listitem">
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>
</li>
<li>
<li class="listitem">
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>
</li>
<li>
<li class="listitem">
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>
</li>
</ul></div>
</div>
<div class="section" lang="en">
<div class="section" title="Serialization">
<div class="titlepage"><div><div><h5 class="title">
<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>
</h5></div></div></div>
@@ -169,7 +164,7 @@
ar.
</p>
</div>
<div class="itemizedlist"><ul type="disc"><li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
<span class="bold"><strong>Requires:</strong></span> No additional requirements
to those imposed by the container.
</li></ul></div>
@@ -180,7 +175,7 @@
archive) ar.
</p>
</div>
<div class="itemizedlist"><ul type="disc"><li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
<span class="bold"><strong>Requires:</strong></span> No additional requirements
to those imposed by the container.
</li></ul></div>

File diff suppressed because it is too large Load Diff

View File

@@ -3,8 +3,8 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Release notes</title>
<link rel="stylesheet" href="../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../index.html" title="Chapter 1. Boost.Bimap">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../index.html" title="Chapter 1. Boost.Bimap">
<link rel="up" href="../index.html" title="Chapter 1. Boost.Bimap">
<link rel="prev" href="future_work.html" title="Future work">
<link rel="next" href="rationale.html" title="Rationale">
@@ -14,15 +14,15 @@
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="future_work.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="rationale.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="section" title="Release notes">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_bimap.release_notes"></a><a class="link" href="release_notes.html" title="Release notes">Release notes</a>
</h2></div></div></div>

View File

@@ -3,8 +3,8 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Test suite</title>
<link rel="stylesheet" href="../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../index.html" title="Chapter 1. Boost.Bimap">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../index.html" title="Chapter 1. Boost.Bimap">
<link rel="up" href="../index.html" title="Chapter 1. Boost.Bimap">
<link rel="prev" href="examples/multiindex_to_bimap_path___hashed_indices.html" title="MultiIndex to Bimap Path - Hashed indices">
<link rel="next" href="future_work.html" title="Future work">
@@ -14,15 +14,15 @@
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="examples/multiindex_to_bimap_path___hashed_indices.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="future_work.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="section" title="Test suite">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_bimap.test_suite"></a><a class="link" href="test_suite.html" title="Test suite">Test suite</a>
</h2></div></div></div>

View File

@@ -3,8 +3,8 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>The tutorial</title>
<link rel="stylesheet" href="../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../index.html" title="Chapter 1. Boost.Bimap">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../index.html" title="Chapter 1. Boost.Bimap">
<link rel="up" href="../index.html" title="Chapter 1. Boost.Bimap">
<link rel="prev" href="one_minute_tutorial.html" title="One minute tutorial">
<link rel="next" href="the_tutorial/discovering_the_bimap_framework.html" title="Discovering the bimap framework">
@@ -14,15 +14,15 @@
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="one_minute_tutorial.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="the_tutorial/discovering_the_bimap_framework.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="section" title="The tutorial">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_bimap.the_tutorial"></a><a class="link" href="the_tutorial.html" title="The tutorial">The tutorial</a>
</h2></div></div></div>
@@ -84,19 +84,19 @@
<dt><span class="section"><a href="the_tutorial/complete_instantiation_scheme.html">Complete
instantiation scheme</a></span></dt>
</dl></div>
<div class="section" lang="en">
<div class="section" title="Roadmap">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_bimap.the_tutorial.roadmap"></a><a class="link" href="the_tutorial.html#boost_bimap.the_tutorial.roadmap" title="Roadmap">Roadmap</a>
</h3></div></div></div>
<div class="orderedlist"><ol type="1">
<li>
<div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem">
Boost.Bimap is intuitive because it is based on the standard template library.
New concepts are however presented to extend the standard maps to bidirectional
maps. The first step is to gain a firm grasp of the bimap framework. The
first section (<a class="link" href="the_tutorial/discovering_the_bimap_framework.html" title="Discovering the bimap framework">Discovering
the bimap framework</a>) aims to explain this.
</li>
<li>
<li class="listitem">
Boost.Bimap offers much more than just a one-to-one ordered unique bidirectional
map. It is possible to control the collection type of each side of the
relationship that the bimap represents, giving one-to-many containers,
@@ -105,38 +105,38 @@
collection types</a>) explains how to instantiate a bimap with different
collection constraints.
</li>
<li>
<li class="listitem">
The section (<a class="link" href="the_tutorial/the_collection_of_relations_type.html" title="The collection of relations type">The
"collection of relations" type</a>) explains how to create
new types of bidirectional maps using custom collection types.
</li>
<li>
<li class="listitem">
In the section <a class="link" href="the_tutorial/differences_with_standard_maps.html" title="Differences with standard maps">Differences
with standard maps</a> we will learn about the subtle differences between
a bimap map view and a standard map.
</li>
<li>
<li class="listitem">
The section <a class="link" href="the_tutorial/useful_functions.html" title="Useful functions">Useful
functions</a> provides information about functions of a bimap that are
not found in the STL.
</li>
<li>
<li class="listitem">
The types of a bimap can be tagged so that each side is accessible by something
closer to the problem than left and right. This leads to more 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
with user defined names</a>) shows how to use this feature.
</li>
<li>
<li class="listitem">
The bimap mapping framework allows to disable a view of a bimap, including
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>
explains how they work.
</li>
<li>
<li class="listitem">
The section <a class="link" href="the_tutorial/additional_information.html" title="Additional information">Additional
information</a> explains how to attach information to each relation
of a bimap.
</li>
<li>
<li class="listitem">
The final section (<a class="link" href="the_tutorial/complete_instantiation_scheme.html" title="Complete instantiation scheme">Complete
Instantiation Scheme</a>) summarizes bimap instantiation and explains
how change the allocator type to be used.

View File

@@ -3,8 +3,8 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Additional information</title>
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../../index.html" title="Chapter 1. Boost.Bimap">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter 1. Boost.Bimap">
<link rel="up" href="../the_tutorial.html" title="The tutorial">
<link rel="prev" href="unconstrained_sets.html" title="Unconstrained Sets">
<link rel="next" href="complete_instantiation_scheme.html" title="Complete instantiation scheme">
@@ -14,15 +14,15 @@
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="unconstrained_sets.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../the_tutorial.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="complete_instantiation_scheme.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="section" title="Additional information">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_bimap.the_tutorial.additional_information"></a><a class="link" href="additional_information.html" title="Additional information">Additional
information</a>
@@ -36,8 +36,7 @@
<p>
</p>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span>
<span class="identifier">multiset_of</span><span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&gt;,</span> <span class="comment">// author
</span> <span class="identifier">set_of</span><span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&gt;</span> <span class="comment">// title
@@ -61,12 +60,12 @@
<p>
Suppose now that we want to store abstract of each book. We have two options:
</p>
<div class="orderedlist"><ol type="1">
<li>
<div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem">
Books name are unique identifiers, so we can create a separate <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">map</span><span class="special">&lt;</span> <span class="identifier">string</span><span class="special">,</span> <span class="identifier">string</span> <span class="special">&gt;</span></code>
that relates books names with abstracts.
</li>
<li>
<li class="listitem">
We can use <a href="http://www.boost.org/libs/multi_index/doc/index.html" target="_top"><span class="bold"><strong>Boost.MultiIndex</strong></span></a> for the new beast.
</li>
</ol></div>
@@ -110,8 +109,7 @@
<p>
</p>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span>
<span class="identifier">multiset_of</span><span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&gt;,</span> <span class="comment">// author
</span> <span class="identifier">set_of</span><span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&gt;,</span> <span class="comment">// title
@@ -151,8 +149,7 @@
<p>
</p>
<pre class="programlisting">
<span class="identifier">i</span><span class="special">-&gt;</span><span class="identifier">info</span> <span class="special">+=</span> <span class="string">"More details about this book"</span><span class="special">;</span>
<pre class="programlisting"><span class="identifier">i</span><span class="special">-&gt;</span><span class="identifier">info</span> <span class="special">+=</span> <span class="string">"More details about this book"</span><span class="special">;</span>
</pre>
<p>
</p>
@@ -168,8 +165,7 @@
<p>
</p>
<pre class="programlisting">
<span class="comment">// Print the new abstract
<pre class="programlisting"><span class="comment">// Print the new abstract
</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">right</span><span class="special">.</span><span class="identifier">info_at</span><span class="special">(</span><span class="string">"The C++ Programming Language"</span><span class="special">);</span>
</pre>
<p>
@@ -185,8 +181,7 @@
<p>
</p>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span>
<span class="identifier">multiset_of</span><span class="special">&lt;</span> <span class="identifier">tagged</span><span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="identifier">author</span> <span class="special">&gt;</span> <span class="special">&gt;,</span>
<span class="identifier">set_of</span><span class="special">&lt;</span> <span class="identifier">tagged</span><span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="identifier">title</span> <span class="special">&gt;</span> <span class="special">&gt;,</span>

View File

@@ -3,8 +3,8 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Bimaps with user defined names</title>
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../../index.html" title="Chapter 1. Boost.Bimap">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter 1. Boost.Bimap">
<link rel="up" href="../the_tutorial.html" title="The tutorial">
<link rel="prev" href="useful_functions.html" title="Useful functions">
<link rel="next" href="unconstrained_sets.html" title="Unconstrained Sets">
@@ -14,15 +14,15 @@
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="useful_functions.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../the_tutorial.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="unconstrained_sets.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="section" title="Bimaps with user defined names">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_bimap.the_tutorial.bimaps_with_user_defined_names"></a><a class="link" href="bimaps_with_user_defined_names.html" title="Bimaps with user defined names">Bimaps
with user defined names</a>
@@ -39,8 +39,7 @@
<p>
</p>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="identifier">bimap</span>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">bimap</span>
<span class="special">&lt;</span>
<span class="identifier">multiset_of</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;,</span>
<span class="keyword">int</span>
@@ -106,8 +105,7 @@
In order to specify a custom tag, the type of each side has to be tagged.
Tagging a type is very simple:
</p>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="identifier">tagged</span><span class="special">&lt;</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">a_tag</span> <span class="special">&gt;</span> <span class="identifier">tagged_int</span><span class="special">;</span>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">tagged</span><span class="special">&lt;</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">a_tag</span> <span class="special">&gt;</span> <span class="identifier">tagged_int</span><span class="special">;</span>
</pre>
<p>
Now we can rewrite the example:
@@ -120,8 +118,7 @@
<p>
</p>
<pre class="programlisting">
<span class="keyword">struct</span> <span class="identifier">id</span> <span class="special">{};</span> <span class="comment">// Tag for the identification number
<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">id</span> <span class="special">{};</span> <span class="comment">// Tag for the identification number
</span><span class="keyword">struct</span> <span class="identifier">name</span> <span class="special">{};</span> <span class="comment">// Tag for the name of the person
</span>
<span class="keyword">typedef</span> <span class="identifier">bimap</span>
@@ -168,8 +165,7 @@
Remember that when the bimap has user defined tags you can still use the
untagged version structures.
</p>
<pre class="programlisting">
<span class="keyword">struct</span> <span class="identifier">Left</span> <span class="special">{};</span>
<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">Left</span> <span class="special">{};</span>
<span class="keyword">struct</span> <span class="identifier">Right</span> <span class="special">{};</span>
<span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span>
<span class="identifier">multiset_of</span><span class="special">&lt;</span> <span class="identifier">tagged</span><span class="special">&lt;</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">Left</span> <span class="special">&gt;</span> <span class="special">&gt;,</span>
@@ -185,7 +181,7 @@
<span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">right_iterator</span> <span class="identifier">right_iter</span> <span class="special">=</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">right</span><span class="special">.</span><span class="identifier">begin</span><span class="special">();</span>
</pre>
<div class="table">
<a name="id2658530"></a><p class="title"><b>Table 1.3. Equivalence of expresions using user defined names</b></p>
<a name="id577416"></a><p class="title"><b>Table 1.3. Equivalence of expresions using user defined names</b></p>
<div class="table-contents"><table class="table" summary="Equivalence of expresions using user defined names">
<colgroup>
<col>

View File

@@ -3,8 +3,8 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Complete instantiation scheme</title>
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../../index.html" title="Chapter 1. Boost.Bimap">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter 1. Boost.Bimap">
<link rel="up" href="../the_tutorial.html" title="The tutorial">
<link rel="prev" href="additional_information.html" title="Additional information">
<link rel="next" href="../bimap_and_boost.html" title="Bimap and Boost">
@@ -14,15 +14,15 @@
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="additional_information.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../the_tutorial.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../bimap_and_boost.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="section" title="Complete instantiation scheme">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_bimap.the_tutorial.complete_instantiation_scheme"></a><a class="link" href="complete_instantiation_scheme.html" title="Complete instantiation scheme">Complete
instantiation scheme</a>
@@ -30,8 +30,7 @@
<p>
To summarize, this is the complete instantiation scheme.
</p>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="identifier">bimap</span>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">bimap</span>
<span class="special">&lt;</span>
<span class="identifier">LeftCollectionType</span><span class="special">,</span> <span class="identifier">RightCollectionType</span>
@@ -50,62 +49,58 @@
<p>
The possibles way to use the first parameter are:
</p>
<pre class="programlisting">
<span class="identifier">bimap</span><span class="special">&lt;</span> <span class="identifier">Type</span><span class="special">,</span> <span class="identifier">R</span> <span class="special">&gt;</span>
<pre class="programlisting"><span class="identifier">bimap</span><span class="special">&lt;</span> <span class="identifier">Type</span><span class="special">,</span> <span class="identifier">R</span> <span class="special">&gt;</span>
</pre>
<div class="itemizedlist"><ul type="disc">
<li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
Left type: <code class="computeroutput"><span class="identifier">Type</span></code>
</li>
<li>
<li class="listitem">
Left collection type: <code class="computeroutput"><span class="identifier">set_of</span><span class="special">&lt;</span> <span class="identifier">Type</span> <span class="special">&gt;</span></code>
</li>
<li>
<li class="listitem">
Left tag: <code class="computeroutput"><span class="identifier">member_at</span><span class="special">::</span><span class="identifier">left</span></code>
</li>
</ul></div>
<pre class="programlisting">
<span class="identifier">bimap</span><span class="special">&lt;</span> <span class="special">{</span><span class="identifier">CollectionType</span><span class="special">}</span><span class="identifier">_of</span><span class="special">&lt;</span> <span class="identifier">Type</span> <span class="special">&gt;,</span> <span class="identifier">R</span> <span class="special">&gt;</span>
<pre class="programlisting"><span class="identifier">bimap</span><span class="special">&lt;</span> <span class="special">{</span><span class="identifier">CollectionType</span><span class="special">}</span><span class="identifier">_of</span><span class="special">&lt;</span> <span class="identifier">Type</span> <span class="special">&gt;,</span> <span class="identifier">R</span> <span class="special">&gt;</span>
</pre>
<div class="itemizedlist"><ul type="disc">
<li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
Left type: <code class="computeroutput"><span class="identifier">Type</span></code>
</li>
<li>
<li class="listitem">
Left collection type: <code class="computeroutput"><span class="special">{</span><span class="identifier">CollectionType</span><span class="special">}</span><span class="identifier">_of</span><span class="special">&lt;</span> <span class="identifier">LeftType</span>
<span class="special">&gt;</span></code>
</li>
<li>
<li class="listitem">
Left tag: <code class="computeroutput"><span class="identifier">member_at</span><span class="special">::</span><span class="identifier">left</span></code>
</li>
</ul></div>
<pre class="programlisting">
<span class="identifier">bimap</span><span class="special">&lt;</span> <span class="identifier">tagged</span><span class="special">&lt;</span> <span class="identifier">Type</span><span class="special">,</span> <span class="identifier">Tag</span> <span class="special">&gt;,</span> <span class="identifier">R</span> <span class="special">&gt;</span>
<pre class="programlisting"><span class="identifier">bimap</span><span class="special">&lt;</span> <span class="identifier">tagged</span><span class="special">&lt;</span> <span class="identifier">Type</span><span class="special">,</span> <span class="identifier">Tag</span> <span class="special">&gt;,</span> <span class="identifier">R</span> <span class="special">&gt;</span>
</pre>
<div class="itemizedlist"><ul type="disc">
<li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
Left type: <code class="computeroutput"><span class="identifier">Type</span></code>
</li>
<li>
<li class="listitem">
Left collection type: <code class="computeroutput"><span class="identifier">set_of</span><span class="special">&lt;</span> <span class="identifier">LeftType</span>
<span class="special">&gt;</span></code>
</li>
<li>
<li class="listitem">
Left tag: <code class="computeroutput"><span class="identifier">Tag</span></code>
</li>
</ul></div>
<pre class="programlisting">
<span class="identifier">bimap</span><span class="special">&lt;</span> <span class="special">{</span><span class="identifier">CollectionType</span><span class="special">}</span><span class="identifier">_of</span><span class="special">&lt;</span> <span class="identifier">tagged</span><span class="special">&lt;</span> <span class="identifier">Type</span><span class="special">,</span> <span class="identifier">Tag</span> <span class="special">&gt;</span> <span class="special">&gt;,</span> <span class="identifier">R</span> <span class="special">&gt;</span>
<pre class="programlisting"><span class="identifier">bimap</span><span class="special">&lt;</span> <span class="special">{</span><span class="identifier">CollectionType</span><span class="special">}</span><span class="identifier">_of</span><span class="special">&lt;</span> <span class="identifier">tagged</span><span class="special">&lt;</span> <span class="identifier">Type</span><span class="special">,</span> <span class="identifier">Tag</span> <span class="special">&gt;</span> <span class="special">&gt;,</span> <span class="identifier">R</span> <span class="special">&gt;</span>
</pre>
<div class="itemizedlist"><ul type="disc">
<li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
Left type: <code class="computeroutput"><span class="identifier">Type</span></code>
</li>
<li>
<li class="listitem">
Left collection type: <code class="computeroutput"><span class="special">{</span><span class="identifier">CollectionType</span><span class="special">}</span><span class="identifier">_of</span><span class="special">&lt;</span> <span class="identifier">LeftType</span>
<span class="special">&gt;</span></code>
</li>
<li>
<li class="listitem">
Left tag: <code class="computeroutput"><span class="identifier">Tag</span></code>
</li>
</ul></div>
@@ -128,112 +123,104 @@
The following are the possible ways of instantiating the last three parameters
of a bimap. You can ignore some of the parameter but the order must be respected.
</p>
<pre class="programlisting">
<span class="identifier">bimap</span><span class="special">&lt;</span> <span class="identifier">L</span><span class="special">,</span> <span class="identifier">R</span> <span class="special">&gt;</span>
<pre class="programlisting"><span class="identifier">bimap</span><span class="special">&lt;</span> <span class="identifier">L</span><span class="special">,</span> <span class="identifier">R</span> <span class="special">&gt;</span>
</pre>
<div class="itemizedlist"><ul type="disc">
<li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
set_of_relation_type: based on the left key type
</li>
<li>
<li class="listitem">
info: no info
</li>
<li>
<li class="listitem">
allocator: std::allocator
</li>
</ul></div>
<pre class="programlisting">
<span class="identifier">bimap</span><span class="special">&lt;</span> <span class="identifier">L</span><span class="special">,</span> <span class="identifier">R</span> <span class="special">,</span><span class="identifier">SetOfRelationType</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="identifier">bimap</span><span class="special">&lt;</span> <span class="identifier">L</span><span class="special">,</span> <span class="identifier">R</span> <span class="special">,</span><span class="identifier">SetOfRelationType</span><span class="special">&gt;</span>
</pre>
<div class="itemizedlist"><ul type="disc">
<li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
set_of_relation_type: SetOfRelationType
</li>
<li>
<li class="listitem">
info: no info
</li>
<li>
<li class="listitem">
allocator: std::allocator
</li>
</ul></div>
<pre class="programlisting">
<span class="identifier">bimap</span><span class="special">&lt;</span> <span class="identifier">L</span><span class="special">,</span> <span class="identifier">R</span> <span class="special">,</span> <span class="identifier">SetOfRelationType</span><span class="special">,</span> <span class="identifier">with_info</span><span class="special">&lt;</span><span class="identifier">Info</span><span class="special">&gt;</span> <span class="special">&gt;</span>
<pre class="programlisting"><span class="identifier">bimap</span><span class="special">&lt;</span> <span class="identifier">L</span><span class="special">,</span> <span class="identifier">R</span> <span class="special">,</span> <span class="identifier">SetOfRelationType</span><span class="special">,</span> <span class="identifier">with_info</span><span class="special">&lt;</span><span class="identifier">Info</span><span class="special">&gt;</span> <span class="special">&gt;</span>
</pre>
<div class="itemizedlist"><ul type="disc">
<li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
set_of_relation_type: SetOfRelationType
</li>
<li>
<li class="listitem">
info: Info
</li>
<li>
<li class="listitem">
allocator: std::allocator
</li>
</ul></div>
<pre class="programlisting">
<span class="identifier">bimap</span><span class="special">&lt;</span> <span class="identifier">L</span><span class="special">,</span> <span class="identifier">R</span> <span class="special">,</span> <span class="identifier">SetOfRelationType</span><span class="special">,</span> <span class="identifier">with_info</span><span class="special">&lt;</span><span class="identifier">Info</span><span class="special">&gt;,</span> <span class="identifier">Allocator</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="identifier">bimap</span><span class="special">&lt;</span> <span class="identifier">L</span><span class="special">,</span> <span class="identifier">R</span> <span class="special">,</span> <span class="identifier">SetOfRelationType</span><span class="special">,</span> <span class="identifier">with_info</span><span class="special">&lt;</span><span class="identifier">Info</span><span class="special">&gt;,</span> <span class="identifier">Allocator</span><span class="special">&gt;</span>
</pre>
<div class="itemizedlist"><ul type="disc">
<li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
set_of_relation_type: SetOfRelationType
</li>
<li>
<li class="listitem">
info: Info
</li>
<li>
<li class="listitem">
allocator: Allocator
</li>
</ul></div>
<pre class="programlisting">
<span class="identifier">bimap</span><span class="special">&lt;</span> <span class="identifier">L</span><span class="special">,</span> <span class="identifier">R</span> <span class="special">,</span> <span class="identifier">SetOfRelationType</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="identifier">bimap</span><span class="special">&lt;</span> <span class="identifier">L</span><span class="special">,</span> <span class="identifier">R</span> <span class="special">,</span> <span class="identifier">SetOfRelationType</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;</span>
</pre>
<div class="itemizedlist"><ul type="disc">
<li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
set_of_relation_type: SetOfRelationType
</li>
<li>
<li class="listitem">
info: no info
</li>
<li>
<li class="listitem">
allocator: Allocator
</li>
</ul></div>
<pre class="programlisting">
<span class="identifier">bimap</span><span class="special">&lt;</span> <span class="identifier">L</span><span class="special">,</span> <span class="identifier">R</span> <span class="special">,</span> <span class="identifier">with_info</span><span class="special">&lt;</span><span class="identifier">Info</span><span class="special">&gt;</span> <span class="special">&gt;</span>
<pre class="programlisting"><span class="identifier">bimap</span><span class="special">&lt;</span> <span class="identifier">L</span><span class="special">,</span> <span class="identifier">R</span> <span class="special">,</span> <span class="identifier">with_info</span><span class="special">&lt;</span><span class="identifier">Info</span><span class="special">&gt;</span> <span class="special">&gt;</span>
</pre>
<div class="itemizedlist"><ul type="disc">
<li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
set_of_relation_type: based on the left key type
</li>
<li>
<li class="listitem">
info: Info
</li>
<li>
<li class="listitem">
allocator: std::allocator
</li>
</ul></div>
<pre class="programlisting">
<span class="identifier">bimap</span><span class="special">&lt;</span> <span class="identifier">L</span><span class="special">,</span> <span class="identifier">R</span> <span class="special">,</span> <span class="identifier">with_info</span><span class="special">&lt;</span><span class="identifier">Info</span><span class="special">&gt;,</span> <span class="identifier">Allocator</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="identifier">bimap</span><span class="special">&lt;</span> <span class="identifier">L</span><span class="special">,</span> <span class="identifier">R</span> <span class="special">,</span> <span class="identifier">with_info</span><span class="special">&lt;</span><span class="identifier">Info</span><span class="special">&gt;,</span> <span class="identifier">Allocator</span><span class="special">&gt;</span>
</pre>
<div class="itemizedlist"><ul type="disc">
<li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
set_of_relation_type: based on the left key type
</li>
<li>
<li class="listitem">
allocator: Allocator
</li>
</ul></div>
<pre class="programlisting">
<span class="identifier">bimap</span><span class="special">&lt;</span> <span class="identifier">L</span><span class="special">,</span> <span class="identifier">R</span> <span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="identifier">bimap</span><span class="special">&lt;</span> <span class="identifier">L</span><span class="special">,</span> <span class="identifier">R</span> <span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;</span>
</pre>
<div class="itemizedlist"><ul type="disc">
<li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
set_of_relation_type: based on the left key type
</li>
<li>
<li class="listitem">
info: no info
</li>
<li>
<li class="listitem">
allocator: Allocator
</li>
</ul></div>

View File

@@ -3,8 +3,8 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Controlling collection types</title>
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../../index.html" title="Chapter 1. Boost.Bimap">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter 1. Boost.Bimap">
<link rel="up" href="../the_tutorial.html" title="The tutorial">
<link rel="prev" href="discovering_the_bimap_framework.html" title="Discovering the bimap framework">
<link rel="next" href="the_collection_of_relations_type.html" title="The collection of relations type">
@@ -14,15 +14,15 @@
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="discovering_the_bimap_framework.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../the_tutorial.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="the_collection_of_relations_type.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="section" title="Controlling collection types">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_bimap.the_tutorial.controlling_collection_types"></a><a class="link" href="controlling_collection_types.html" title="Controlling collection types">Controlling
collection types</a>
@@ -34,7 +34,7 @@
parameters</a></span></dt>
<dt><span class="section"><a href="controlling_collection_types.html#boost_bimap.the_tutorial.controlling_collection_types.examples">Examples</a></span></dt>
</dl></div>
<div class="section" lang="en">
<div class="section" title="Freedom of choice">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_bimap.the_tutorial.controlling_collection_types.freedom_of_choice"></a><a class="link" href="controlling_collection_types.html#boost_bimap.the_tutorial.controlling_collection_types.freedom_of_choice" title="Freedom of choice">Freedom
of choice</a>
@@ -53,14 +53,13 @@
collection is a set. The instantiation of a bimap with custom collection
types looks like this:
</p>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span> <span class="bold"><strong>CollectionType</strong></span><span class="identifier">_of</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;,</span> <span class="bold"><strong>CollectionType</strong></span><span class="identifier">_of</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">bm_type</span><span class="special">;</span>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span> <span class="bold"><strong>CollectionType</strong></span><span class="identifier">_of</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;,</span> <span class="bold"><strong>CollectionType</strong></span><span class="identifier">_of</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">bm_type</span><span class="special">;</span>
</pre>
<p>
The following is the list of all supported collection types.
</p>
<div class="table">
<a name="id2642497"></a><p class="title"><b>Table 1.2. Collection of Key Types</b></p>
<a name="id561624"></a><p class="title"><b>Table 1.2. Collection of Key Types</b></p>
<div class="table-contents"><table class="table" summary="Collection of Key Types">
<colgroup>
<col>
@@ -221,26 +220,25 @@
you can perform with each side of the bimap and the time it takes to do
each. If we have:
</p>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span> <span class="bold"><strong>CollectionType</strong></span><span class="identifier">_of</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;,</span> <span class="bold"><strong>CollectionType</strong></span><span class="identifier">_of</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">bm_type</span><span class="special">;</span>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span> <span class="bold"><strong>CollectionType</strong></span><span class="identifier">_of</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;,</span> <span class="bold"><strong>CollectionType</strong></span><span class="identifier">_of</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">bm_type</span><span class="special">;</span>
<span class="identifier">bm_type</span> <span class="identifier">bm</span><span class="special">;</span>
</pre>
<p>
The following now describes the resulting map views of the bidirectional
map.
</p>
<div class="itemizedlist"><ul type="disc">
<li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
<code class="computeroutput"><span class="identifier">bm</span><span class="special">.</span><span class="identifier">left</span></code> is signature-compatible with
<span class="bold"><strong>LeftMapType</strong></span><code class="computeroutput"><span class="special">&lt;</span><span class="identifier">A</span><span class="special">,</span><span class="identifier">B</span><span class="special">&gt;</span></code>
</li>
<li>
<li class="listitem">
<code class="computeroutput"><span class="identifier">bm</span><span class="special">.</span><span class="identifier">right</span></code> is signature-compatible with
<span class="bold"><strong>RightMapType</strong></span><code class="computeroutput"><span class="special">&lt;</span><span class="identifier">B</span><span class="special">,</span><span class="identifier">A</span><span class="special">&gt;</span></code>
</li>
</ul></div>
</div>
<div class="section" lang="en">
<div class="section" title="Configuration parameters">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_bimap.the_tutorial.controlling_collection_types.configuration_parameters"></a><a class="link" href="controlling_collection_types.html#boost_bimap.the_tutorial.controlling_collection_types.configuration_parameters" title="Configuration parameters">Configuration
parameters</a>
@@ -349,31 +347,30 @@
</tbody>
</table></div>
</div>
<div class="section" lang="en">
<div class="section" title="Examples">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_bimap.the_tutorial.controlling_collection_types.examples"></a><a class="link" href="controlling_collection_types.html#boost_bimap.the_tutorial.controlling_collection_types.examples" title="Examples">Examples</a>
</h4></div></div></div>
<a name="boost_bimap.the_tutorial.controlling_collection_types.examples.countries_populations"></a><h6>
<a name="id2643609"></a>
<a name="id562688"></a>
<a class="link" href="controlling_collection_types.html#boost_bimap.the_tutorial.controlling_collection_types.examples.countries_populations">Countries
Populations</a>
</h6>
<p>
We want to store countries populations. The requeriments are:
</p>
<div class="orderedlist"><ol type="1">
<li>
<div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem">
Get a list of countries in decresing order of their populations.
</li>
<li>
<li class="listitem">
Given a countrie, get their population.
</li>
</ol></div>
<p>
Lets create the appropiate bimap.
</p>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span>
<span class="identifier">unordered_set_of</span><span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&gt;,</span>
<span class="identifier">multiset_of</span><span class="special">&lt;</span> <span class="keyword">long</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">greater</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span> <span class="special">&gt;</span>
@@ -401,8 +398,7 @@
<p>
</p>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span>
<span class="identifier">unordered_set_of</span><span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&gt;,</span>
<span class="identifier">multiset_of</span><span class="special">&lt;</span> <span class="keyword">long</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">greater</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span> <span class="special">&gt;</span>
@@ -422,7 +418,7 @@
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Countries by their population:"</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
<span class="comment">// First requirement
</span><span class="line_callout_bug"><a class="co" name="boost_bimap4co" href="controlling_collection_types.html#boost_bimap4"><img src="../../images/callouts/1.png" alt="1" border="0"></a></span><span class="keyword">for</span><span class="special">(</span> <span class="identifier">population_bimap</span><span class="special">::</span><span class="identifier">right_const_iterator</span>
</span><span class="line_callout_bug"><a class="co" name="boost_bimap4co" href="controlling_collection_types.html#boost_bimap4"><img src="../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a></span><span class="keyword">for</span><span class="special">(</span> <span class="identifier">population_bimap</span><span class="special">::</span><span class="identifier">right_const_iterator</span>
<span class="identifier">i</span> <span class="special">=</span> <span class="identifier">pop</span><span class="special">.</span><span class="identifier">right</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">iend</span> <span class="special">=</span> <span class="identifier">pop</span><span class="special">.</span><span class="identifier">right</span><span class="special">.</span><span class="identifier">end</span><span class="special">();</span>
<span class="identifier">i</span> <span class="special">!=</span> <span class="identifier">iend</span> <span class="special">;</span> <span class="special">++</span><span class="identifier">i</span> <span class="special">)</span>
<span class="special">{</span>
@@ -430,7 +426,7 @@
<span class="special">}</span>
<span class="comment">// Second requirement
</span><span class="line_callout_bug"><a class="co" name="boost_bimap5co" href="controlling_collection_types.html#boost_bimap5"><img src="../../images/callouts/2.png" alt="2" border="0"></a></span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Population of China: "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pop</span><span class="special">.</span><span class="identifier">left</span><span class="special">.</span><span class="identifier">at</span><span class="special">(</span><span class="string">"China"</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
</span><span class="line_callout_bug"><a class="co" name="boost_bimap5co" href="controlling_collection_types.html#boost_bimap5"><img src="../../../../../../doc/src/images/callouts/2.png" alt="2" border="0"></a></span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Population of China: "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pop</span><span class="special">.</span><span class="identifier">left</span><span class="special">.</span><span class="identifier">at</span><span class="special">(</span><span class="string">"China"</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
</pre>
<p>
</p>
@@ -440,12 +436,12 @@
</p>
<div class="calloutlist"><table border="0" summary="Callout list">
<tr>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap4"></a><a href="#boost_bimap4co"><img src="../../images/callouts/1.png" alt="1" border="0"></a> </p></td>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap4"></a><a href="#boost_bimap4co"><img src="../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a> </p></td>
<td valign="top" align="left"><p> The right map view works like a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">multimap</span><span class="special">&lt;</span> <span class="keyword">long</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">greater</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span> <span class="special">&gt;</span></code>,
We can iterate over it to print the results in the required order. </p></td>
</tr>
<tr>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap5"></a><a href="#boost_bimap5co"><img src="../../images/callouts/2.png" alt="2" border="0"></a> </p></td>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap5"></a><a href="#boost_bimap5co"><img src="../../../../../../doc/src/images/callouts/2.png" alt="2" border="0"></a> </p></td>
<td valign="top" align="left"><p> The
left map view works like a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">unordered_map</span><span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="keyword">long</span> <span class="special">&gt;</span></code>, given the name of the country we
can use it to search for the population in constant time </p></td>
@@ -456,7 +452,7 @@
<p>
</p>
<a name="boost_bimap.the_tutorial.controlling_collection_types.examples.repetitions_counter"></a><h6>
<a name="id2644821"></a>
<a name="id563860"></a>
<a class="link" href="controlling_collection_types.html#boost_bimap.the_tutorial.controlling_collection_types.examples.repetitions_counter">Repetitions
counter</a>
</h6>
@@ -472,11 +468,10 @@
<p>
</p>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="identifier">bimap</span>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">bimap</span>
<span class="special">&lt;</span>
<span class="identifier">unordered_set_of</span><span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&gt;,</span>
<span class="identifier">list_of</span><span class="special">&lt;</span> <span class="identifier">counter</span> <span class="special">&gt;</span> <span class="callout_bug"><a class="co" name="boost_bimap6co" href="controlling_collection_types.html#boost_bimap6"><img src="../../images/callouts/1.png" alt="1" border="0"></a></span>
<span class="identifier">list_of</span><span class="special">&lt;</span> <span class="identifier">counter</span> <span class="special">&gt;</span> <span class="callout_bug"><a class="co" name="boost_bimap6co" href="controlling_collection_types.html#boost_bimap6"><img src="../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a></span>
<span class="special">&gt;</span> <span class="identifier">word_counter</span><span class="special">;</span>
@@ -497,11 +492,11 @@
<span class="keyword">for</span><span class="special">(</span> <span class="identifier">text_tokenizer</span><span class="special">::</span><span class="identifier">const_iterator</span> <span class="identifier">it</span> <span class="special">=</span> <span class="identifier">tok</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">it_end</span> <span class="special">=</span> <span class="identifier">tok</span><span class="special">.</span><span class="identifier">end</span><span class="special">();</span>
<span class="identifier">it</span> <span class="special">!=</span> <span class="identifier">it_end</span> <span class="special">;</span> <span class="special">++</span><span class="identifier">it</span> <span class="special">)</span>
<span class="special">{</span>
<span class="line_callout_bug"><a class="co" name="boost_bimap7co" href="controlling_collection_types.html#boost_bimap7"><img src="../../images/callouts/2.png" alt="2" border="0"></a></span><span class="special">++</span> <span class="identifier">wc</span><span class="special">.</span><span class="identifier">left</span><span class="special">[*</span><span class="identifier">it</span><span class="special">];</span>
<span class="line_callout_bug"><a class="co" name="boost_bimap7co" href="controlling_collection_types.html#boost_bimap7"><img src="../../../../../../doc/src/images/callouts/2.png" alt="2" border="0"></a></span><span class="special">++</span> <span class="identifier">wc</span><span class="special">.</span><span class="identifier">left</span><span class="special">[*</span><span class="identifier">it</span><span class="special">];</span>
<span class="special">}</span>
<span class="comment">// list words with counters by order of appearance
</span><span class="line_callout_bug"><a class="co" name="boost_bimap8co" href="controlling_collection_types.html#boost_bimap8"><img src="../../images/callouts/3.png" alt="3" border="0"></a></span><span class="keyword">for</span><span class="special">(</span> <span class="identifier">word_counter</span><span class="special">::</span><span class="identifier">right_const_iterator</span>
</span><span class="line_callout_bug"><a class="co" name="boost_bimap8co" href="controlling_collection_types.html#boost_bimap8"><img src="../../../../../../doc/src/images/callouts/3.png" alt="3" border="0"></a></span><span class="keyword">for</span><span class="special">(</span> <span class="identifier">word_counter</span><span class="special">::</span><span class="identifier">right_const_iterator</span>
<span class="identifier">wit</span> <span class="special">=</span> <span class="identifier">wc</span><span class="special">.</span><span class="identifier">right</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">wit_end</span> <span class="special">=</span> <span class="identifier">wc</span><span class="special">.</span><span class="identifier">right</span><span class="special">.</span><span class="identifier">end</span><span class="special">();</span>
<span class="identifier">wit</span> <span class="special">!=</span> <span class="identifier">wit_end</span><span class="special">;</span> <span class="special">++</span><span class="identifier">wit</span> <span class="special">)</span>
@@ -517,19 +512,19 @@
</p>
<div class="calloutlist"><table border="0" summary="Callout list">
<tr>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap6"></a><a href="#boost_bimap6co"><img src="../../images/callouts/1.png" alt="1" border="0"></a> </p></td>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap6"></a><a href="#boost_bimap6co"><img src="../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a> </p></td>
<td valign="top" align="left"><p> <code class="computeroutput"><span class="identifier">counter</span></code> is an integer
that is initialized in zero in the constructor </p></td>
</tr>
<tr>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap7"></a><a href="#boost_bimap7co"><img src="../../images/callouts/2.png" alt="2" border="0"></a> </p></td>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap7"></a><a href="#boost_bimap7co"><img src="../../../../../../doc/src/images/callouts/2.png" alt="2" border="0"></a> </p></td>
<td valign="top" align="left"><p> Because the right collection
type is <code class="computeroutput"><span class="identifier">list_of</span></code>, the
right data is not used a key and can be modified in the same way as with
standard maps. </p></td>
</tr>
<tr>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap8"></a><a href="#boost_bimap8co"><img src="../../images/callouts/3.png" alt="3" border="0"></a> </p></td>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap8"></a><a href="#boost_bimap8co"><img src="../../../../../../doc/src/images/callouts/3.png" alt="3" border="0"></a> </p></td>
<td valign="top" align="left"><p> When we insert the elements using the left map view, the
element is inserted at the end of the list. </p></td>
</tr>

View File

@@ -3,8 +3,8 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Differences with standard maps</title>
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../../index.html" title="Chapter 1. Boost.Bimap">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter 1. Boost.Bimap">
<link rel="up" href="../the_tutorial.html" title="The tutorial">
<link rel="prev" href="the_collection_of_relations_type.html" title="The collection of relations type">
<link rel="next" href="useful_functions.html" title="Useful functions">
@@ -14,15 +14,15 @@
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="the_collection_of_relations_type.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../the_tutorial.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="useful_functions.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="section" title="Differences with standard maps">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_bimap.the_tutorial.differences_with_standard_maps"></a><a class="link" href="differences_with_standard_maps.html" title="Differences with standard maps">Differences
with standard maps</a>
@@ -35,7 +35,7 @@
<dt><span class="section"><a href="differences_with_standard_maps.html#boost_bimap.the_tutorial.differences_with_standard_maps.complexity_of_operations">Complexity
of operations</a></span></dt>
</dl></div>
<div class="section" lang="en">
<div class="section" title="Insertion">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_bimap.the_tutorial.differences_with_standard_maps.insertion"></a><a class="link" href="differences_with_standard_maps.html#boost_bimap.the_tutorial.differences_with_standard_maps.insertion" title="Insertion">Insertion</a>
</h4></div></div></div>
@@ -45,8 +45,7 @@
constrains in each of them. Some insertions that we give for granted to
success in standard maps fails with bimaps. For example:
</p>
<pre class="programlisting">
<span class="identifier">bimap</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span> <span class="identifier">bm</span><span class="special">;</span>
<pre class="programlisting"><span class="identifier">bimap</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span> <span class="identifier">bm</span><span class="special">;</span>
<span class="identifier">bm</span><span class="special">.</span><span class="identifier">left</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="string">"orange"</span><span class="special">);</span>
<span class="identifier">bm</span><span class="special">.</span><span class="identifier">left</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span><span class="number">2</span><span class="special">,</span><span class="string">"orange"</span><span class="special">);</span> <span class="comment">// No effect! returns make_pair(iter,false)
@@ -58,8 +57,7 @@
values are different and it is allowed by the right map view because it
is a non-unique collection type.
</p>
<pre class="programlisting">
<span class="identifier">bimap</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">multiset_of</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">bm</span><span class="special">;</span>
<pre class="programlisting"><span class="identifier">bimap</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">multiset_of</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">bm</span><span class="special">;</span>
<span class="identifier">bm</span><span class="special">.</span><span class="identifier">left</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="string">"orange"</span><span class="special">);</span>
<span class="identifier">bm</span><span class="special">.</span><span class="identifier">left</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span><span class="number">2</span><span class="special">,</span><span class="string">"orange"</span><span class="special">);</span> <span class="comment">// Insertion succeed!
@@ -69,7 +67,7 @@
allowed by it too.
</p>
</div>
<div class="section" lang="en">
<div class="section" title="iterator::value_type">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_bimap.the_tutorial.differences_with_standard_maps.iterator__value_type"></a><a class="link" href="differences_with_standard_maps.html#boost_bimap.the_tutorial.differences_with_standard_maps.iterator__value_type" title="iterator::value_type">iterator::value_type</a>
</h4></div></div></div>
@@ -83,8 +81,7 @@
is no problem with modifying the data of that side. The following code
is valid:
</p>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">list_of</span><span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">bm_type</span><span class="special">;</span>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">list_of</span><span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">bm_type</span><span class="special">;</span>
<span class="identifier">bm_type</span> <span class="identifier">bm</span><span class="special">;</span>
<span class="identifier">bm</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span> <span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">relation</span><span class="special">(</span> <span class="number">1</span><span class="special">,</span> <span class="string">"one"</span> <span class="special">)</span> <span class="special">);</span>
<span class="special">...</span>
@@ -343,7 +340,7 @@
</tbody>
</table></div>
</div>
<div class="section" lang="en">
<div class="section" title="operator[] and at()">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_bimap.the_tutorial.differences_with_standard_maps.operator_____and_at__"></a><a class="link" href="differences_with_standard_maps.html#boost_bimap.the_tutorial.differences_with_standard_maps.operator_____and_at__" title="operator[] and at()">operator[]
and at()</a>
@@ -354,8 +351,7 @@
to retrieve the associated data of a given key only when the other collection
type is a mutable one. In these cases it works in the same way as the standard.
</p>
<pre class="programlisting">
<span class="identifier">bimap</span><span class="special">&lt;</span> <span class="identifier">unorderd_set_of</span><span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;,</span> <span class="identifier">list_of</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">bm</span><span class="special">;</span>
<pre class="programlisting"><span class="identifier">bimap</span><span class="special">&lt;</span> <span class="identifier">unorderd_set_of</span><span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;,</span> <span class="identifier">list_of</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">bm</span><span class="special">;</span>
<span class="identifier">bm</span><span class="special">.</span><span class="identifier">left</span><span class="special">[</span><span class="string">"one"</span><span class="special">]</span> <span class="special">=</span> <span class="number">1</span><span class="special">;</span> <span class="comment">// Ok
</span></pre>
@@ -363,8 +359,7 @@
The standard defines an access function for <code class="computeroutput"><span class="identifier">map</span></code>
and <code class="computeroutput"><span class="identifier">unordered_map</span></code>:
</p>
<pre class="programlisting">
<span class="keyword">const</span> <span class="identifier">data_type</span> <span class="special">&amp;</span> <span class="identifier">at</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&amp;</span> <span class="identifier">k</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
<pre class="programlisting"><span class="keyword">const</span> <span class="identifier">data_type</span> <span class="special">&amp;</span> <span class="identifier">at</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&amp;</span> <span class="identifier">k</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
<span class="identifier">data_type</span> <span class="special">&amp;</span> <span class="identifier">at</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&amp;</span> <span class="identifier">k</span><span class="special">);</span>
</pre>
<p>
@@ -388,8 +383,7 @@
<p>
</p>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span> <span class="identifier">set_of</span><span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&gt;,</span> <span class="identifier">list_of</span><span class="special">&lt;</span> <span class="keyword">int</span> <span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">bm_type</span><span class="special">;</span>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span> <span class="identifier">set_of</span><span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&gt;,</span> <span class="identifier">list_of</span><span class="special">&lt;</span> <span class="keyword">int</span> <span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">bm_type</span><span class="special">;</span>
<span class="identifier">bm_type</span> <span class="identifier">bm</span><span class="special">;</span>
<span class="keyword">try</span>
@@ -413,8 +407,7 @@
<p>
</p>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span> <span class="identifier">multiset_of</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;,</span> <span class="identifier">unordered_set_of</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">bm_type</span><span class="special">;</span>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span> <span class="identifier">multiset_of</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;,</span> <span class="identifier">unordered_set_of</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">bm_type</span><span class="special">;</span>
<span class="identifier">bm_type</span> <span class="identifier">bm</span><span class="special">;</span>
<span class="identifier">bm</span><span class="special">.</span><span class="identifier">right</span><span class="special">[</span><span class="number">1</span><span class="special">]</span> <span class="special">=</span> <span class="string">"one"</span><span class="special">;</span> <span class="comment">// compilation error
@@ -437,7 +430,7 @@
<p>
</p>
</div>
<div class="section" lang="en">
<div class="section" title="Complexity of operations">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_bimap.the_tutorial.differences_with_standard_maps.complexity_of_operations"></a><a class="link" href="differences_with_standard_maps.html#boost_bimap.the_tutorial.differences_with_standard_maps.complexity_of_operations" title="Complexity of operations">Complexity
of operations</a>

View File

@@ -3,8 +3,8 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Discovering the bimap framework</title>
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../../index.html" title="Chapter 1. Boost.Bimap">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter 1. Boost.Bimap">
<link rel="up" href="../the_tutorial.html" title="The tutorial">
<link rel="prev" href="../the_tutorial.html" title="The tutorial">
<link rel="next" href="controlling_collection_types.html" title="Controlling collection types">
@@ -14,15 +14,15 @@
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../the_tutorial.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../the_tutorial.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="controlling_collection_types.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="section" title="Discovering the bimap framework">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_bimap.the_tutorial.discovering_the_bimap_framework"></a><a class="link" href="discovering_the_bimap_framework.html" title="Discovering the bimap framework">Discovering
the bimap framework</a>
@@ -35,7 +35,7 @@
<dt><span class="section"><a href="discovering_the_bimap_framework.html#boost_bimap.the_tutorial.discovering_the_bimap_framework.bimap_mapping_framework">Bimap
mapping framework</a></span></dt>
</dl></div>
<div class="section" lang="en">
<div class="section" title="Interpreting bidirectional maps">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_bimap.the_tutorial.discovering_the_bimap_framework.interpreting_bidirectional_maps"></a><a class="link" href="discovering_the_bimap_framework.html#boost_bimap.the_tutorial.discovering_the_bimap_framework.interpreting_bidirectional_maps" title="Interpreting bidirectional maps">Interpreting
bidirectional maps</a>
@@ -51,7 +51,7 @@
and data from the left collection.
</p>
</div>
<div class="section" lang="en">
<div class="section" title="Standard mapping framework">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_bimap.the_tutorial.discovering_the_bimap_framework.standard_mapping_framework"></a><a class="link" href="discovering_the_bimap_framework.html#boost_bimap.the_tutorial.discovering_the_bimap_framework.standard_mapping_framework" title="Standard mapping framework">Standard
mapping framework</a>
@@ -73,7 +73,7 @@
containers.
</p>
<div class="table">
<a name="id2640562"></a><p class="title"><b>Table 1.1. std associative containers</b></p>
<a name="id559754"></a><p class="title"><b>Table 1.1. std associative containers</b></p>
<div class="table-contents"><table class="table" summary="std associative containers">
<colgroup>
<col>
@@ -171,7 +171,7 @@
</div>
<br class="table-break">
</div>
<div class="section" lang="en">
<div class="section" title="Bimap mapping framework">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_bimap.the_tutorial.discovering_the_bimap_framework.bimap_mapping_framework"></a><a class="link" href="discovering_the_bimap_framework.html#boost_bimap.the_tutorial.discovering_the_bimap_framework.bimap_mapping_framework" title="Bimap mapping framework">Bimap
mapping framework</a>
@@ -215,7 +215,7 @@
The following code snippet shows the relation between a bimap and standard
maps.
</p>
<div class="note"><table border="0" summary="Note">
<div class="note" title="Note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../doc/html/images/note.png"></td>
<th align="left">Note</th>
@@ -226,8 +226,7 @@
Views cannot be constructed as separate objects from the container they
belong to, so the following:
</p>
<pre class="programlisting">
<span class="comment">// Wrong: we forgot the &amp; after bm_type::left_type
<pre class="programlisting"><span class="comment">// Wrong: we forgot the &amp; after bm_type::left_type
</span><span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">left_map</span> <span class="identifier">lm</span> <span class="special">=</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">left</span><span class="special">;</span>
</pre>
<p>
@@ -244,8 +243,7 @@
<p>
</p>
<pre class="programlisting">
<span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">Map</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">CompatibleKey</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">CompatibleData</span> <span class="special">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">Map</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">CompatibleKey</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">CompatibleData</span> <span class="special">&gt;</span>
<span class="keyword">void</span> <span class="identifier">use_it</span><span class="special">(</span> <span class="identifier">Map</span> <span class="special">&amp;</span> <span class="identifier">m</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">CompatibleKey</span> <span class="special">&amp;</span> <span class="identifier">key</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">CompatibleData</span> <span class="special">&amp;</span> <span class="identifier">data</span> <span class="special">)</span>

View File

@@ -3,8 +3,8 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>The collection of relations type</title>
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../../index.html" title="Chapter 1. Boost.Bimap">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter 1. Boost.Bimap">
<link rel="up" href="../the_tutorial.html" title="The tutorial">
<link rel="prev" href="controlling_collection_types.html" title="Controlling collection types">
<link rel="next" href="differences_with_standard_maps.html" title="Differences with standard maps">
@@ -14,15 +14,15 @@
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="controlling_collection_types.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../the_tutorial.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="differences_with_standard_maps.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="section" title="The collection of relations type">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_bimap.the_tutorial.the_collection_of_relations_type"></a><a class="link" href="the_collection_of_relations_type.html" title="The collection of relations type">The
collection of relations type</a>
@@ -34,7 +34,7 @@
parameters</a></span></dt>
<dt><span class="section"><a href="the_collection_of_relations_type.html#boost_bimap.the_tutorial.the_collection_of_relations_type.examples">Examples</a></span></dt>
</dl></div>
<div class="section" lang="en">
<div class="section" title="A new point of view">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_bimap.the_tutorial.the_collection_of_relations_type.a_new_point_of_view"></a><a class="link" href="the_collection_of_relations_type.html#boost_bimap.the_tutorial.the_collection_of_relations_type.a_new_point_of_view" title="A new point of view">A
new point of view</a>
@@ -60,36 +60,36 @@
times where it is useful to give this collection other constraints or simply
to order it differently. The user is allowed to choose between:
</p>
<div class="itemizedlist"><ul type="disc">
<li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
left_based
</li>
<li>
<li class="listitem">
right_based
</li>
<li>
<li class="listitem">
set_of_relation&lt;&gt;
</li>
<li>
<li class="listitem">
multiset_of_relation&lt;&gt;
</li>
<li>
<li class="listitem">
unordered_set_of_relation&lt;&gt;
</li>
<li>
<li class="listitem">
unordered_multiset_of_relation&lt;&gt;
</li>
<li>
<li class="listitem">
list_of_relation
</li>
<li>
<li class="listitem">
vector_of_relation
</li>
<li>
<li class="listitem">
unconstrained_set_of_relation
</li>
</ul></div>
<div class="tip"><table border="0" summary="Tip">
<div class="tip" title="Tip"><table border="0" summary="Tip">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../../../../../../doc/html/images/tip.png"></td>
<th align="left">Tip</th>
@@ -122,8 +122,7 @@
<p>
</p>
<pre class="programlisting">
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">string</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">bimap</span><span class="special">/</span><span class="identifier">bimap</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">bimap</span><span class="special">/</span><span class="identifier">list_of</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
@@ -210,7 +209,7 @@
<p>
</p>
</div>
<div class="section" lang="en">
<div class="section" title="Configuration parameters">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_bimap.the_tutorial.the_collection_of_relations_type.configuration_parameters"></a><a class="link" href="the_collection_of_relations_type.html#boost_bimap.the_tutorial.the_collection_of_relations_type.configuration_parameters" title="Configuration parameters">Configuration
parameters</a>
@@ -349,15 +348,14 @@
</tbody>
</table></div>
</div>
<div class="section" lang="en">
<div class="section" title="Examples">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_bimap.the_tutorial.the_collection_of_relations_type.examples"></a><a class="link" href="the_collection_of_relations_type.html#boost_bimap.the_tutorial.the_collection_of_relations_type.examples" title="Examples">Examples</a>
</h4></div></div></div>
<p>
Consider this example:
</p>
<pre class="programlisting">
<span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">Rel</span> <span class="special">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">Rel</span> <span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">RelOrder</span>
<span class="special">{</span>
<span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">Rel</span> <span class="identifier">ra</span><span class="special">,</span> <span class="identifier">Rel</span> <span class="identifier">rb</span><span class="special">)</span> <span class="keyword">const</span>
@@ -379,8 +377,7 @@
This container will only allow unique relations because <code class="computeroutput"><span class="identifier">set_of_relation</span></code>
has been used but the elements in each side of the bimap can be repeated.
</p>
<pre class="programlisting">
<span class="keyword">struct</span> <span class="identifier">name</span> <span class="special">{};</span>
<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">name</span> <span class="special">{};</span>
<span class="keyword">struct</span> <span class="identifier">phone_number</span> <span class="special">{};</span>
<span class="keyword">typedef</span> <span class="identifier">bimap</span>

View File

@@ -3,8 +3,8 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Unconstrained Sets</title>
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../../index.html" title="Chapter 1. Boost.Bimap">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter 1. Boost.Bimap">
<link rel="up" href="../the_tutorial.html" title="The tutorial">
<link rel="prev" href="bimaps_with_user_defined_names.html" title="Bimaps with user defined names">
<link rel="next" href="additional_information.html" title="Additional information">
@@ -14,15 +14,15 @@
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="bimaps_with_user_defined_names.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../the_tutorial.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="additional_information.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="section" title="Unconstrained Sets">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_bimap.the_tutorial.unconstrained_sets"></a><a class="link" href="unconstrained_sets.html" title="Unconstrained Sets">Unconstrained
Sets</a>
@@ -36,16 +36,16 @@
<p>
Unconstrained sets are useful for the following reasons:
</p>
<div class="itemizedlist"><ul type="disc">
<li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
A bimap type has stronger guarantees than its standard equivalent, and
includes some useful functions (replace, modify) that the standard does
not have.
</li>
<li>
<li class="listitem">
You can view the mapping as a collection of relations.
</li>
<li>
<li class="listitem">
Using this kind of map makes the code very extensible. If, at any moment
of the development, the need to perform searches from the right side of
the mapping arises, the only necessary change is to the <code class="computeroutput"><span class="keyword">typedef</span></code>.
@@ -59,8 +59,7 @@
<p>
</p>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="identifier">unconstrained_set_of</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">bm_type</span><span class="special">;</span>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="identifier">unconstrained_set_of</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">bm_type</span><span class="special">;</span>
<span class="keyword">typedef</span> <span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">left_map</span> <span class="identifier">map_type</span><span class="special">;</span>
<span class="identifier">bm_type</span> <span class="identifier">bm</span><span class="special">;</span>
@@ -78,8 +77,7 @@
<p>
</p>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">map</span><span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="keyword">int</span> <span class="special">&gt;</span> <span class="identifier">map_type</span><span class="special">;</span>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">map</span><span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="keyword">int</span> <span class="special">&gt;</span> <span class="identifier">map_type</span><span class="special">;</span>
<span class="identifier">map_type</span> <span class="identifier">m</span><span class="special">;</span>
</pre>
@@ -95,14 +93,13 @@
<p>
</p>
<pre class="programlisting">
<span class="identifier">m</span><span class="special">[</span><span class="string">"one"</span><span class="special">]</span> <span class="special">=</span> <span class="number">1</span><span class="special">;</span>
<pre class="programlisting"><span class="identifier">m</span><span class="special">[</span><span class="string">"one"</span><span class="special">]</span> <span class="special">=</span> <span class="number">1</span><span class="special">;</span>
<span class="identifier">assert</span><span class="special">(</span> <span class="identifier">m</span><span class="special">.</span><span class="identifier">find</span><span class="special">(</span><span class="string">"one"</span><span class="special">)</span> <span class="special">!=</span> <span class="identifier">m</span><span class="special">.</span><span class="identifier">end</span><span class="special">()</span> <span class="special">);</span>
<span class="keyword">for</span><span class="special">(</span> <span class="identifier">map_type</span><span class="special">::</span><span class="identifier">iterator</span> <span class="identifier">i</span> <span class="special">=</span> <span class="identifier">m</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">iend</span> <span class="special">=</span> <span class="identifier">m</span><span class="special">.</span><span class="identifier">end</span><span class="special">();</span> <span class="identifier">i</span> <span class="special">!=</span> <span class="identifier">iend</span><span class="special">;</span> <span class="special">++</span><span class="identifier">i</span> <span class="special">)</span>
<span class="special">{</span>
<span class="line_callout_bug"><a class="co" name="boost_bimap14co" href="unconstrained_sets.html#boost_bimap14"><img src="../../images/callouts/1.png" alt="1" border="0"></a></span><span class="special">++(</span><span class="identifier">i</span><span class="special">-&gt;</span><span class="identifier">second</span><span class="special">);</span>
<span class="line_callout_bug"><a class="co" name="boost_bimap14co" href="unconstrained_sets.html#boost_bimap14"><img src="../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a></span><span class="special">++(</span><span class="identifier">i</span><span class="special">-&gt;</span><span class="identifier">second</span><span class="special">);</span>
<span class="special">}</span>
<span class="identifier">m</span><span class="special">.</span><span class="identifier">erase</span><span class="special">(</span><span class="string">"one"</span><span class="special">);</span>
@@ -114,7 +111,7 @@
<p>
</p>
<div class="calloutlist"><table border="0" summary="Callout list"><tr>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap14"></a><a href="#boost_bimap14co"><img src="../../images/callouts/1.png" alt="1" border="0"></a> </p></td>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap14"></a><a href="#boost_bimap14co"><img src="../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a> </p></td>
<td valign="top" align="left"><p> The right collection of the bimap is mutable so its elements can be modified
using iterators. </p></td>
</tr></table></div>
@@ -130,11 +127,10 @@
<p>
</p>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="identifier">map_type</span><span class="special">::</span><span class="identifier">const_iterator</span> <span class="identifier">const_iterator</span><span class="special">;</span>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">map_type</span><span class="special">::</span><span class="identifier">const_iterator</span> <span class="identifier">const_iterator</span><span class="special">;</span>
<span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">const_iterator</span><span class="special">,</span><span class="identifier">const_iterator</span><span class="special">&gt;</span> <span class="identifier">const_range</span><span class="special">;</span>
<span class="line_callout_bug"><a class="co" name="boost_bimap15co" href="unconstrained_sets.html#boost_bimap15"><img src="../../images/callouts/1.png" alt="1" border="0"></a></span><span class="identifier">const_range</span> <span class="identifier">r</span> <span class="special">=</span> <span class="identifier">m</span><span class="special">.</span><span class="identifier">range</span><span class="special">(</span> <span class="string">"one"</span> <span class="special">&lt;=</span> <span class="identifier">_key</span><span class="special">,</span> <span class="identifier">_key</span> <span class="special">&lt;=</span> <span class="string">"two"</span> <span class="special">);</span>
<span class="line_callout_bug"><a class="co" name="boost_bimap15co" href="unconstrained_sets.html#boost_bimap15"><img src="../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a></span><span class="identifier">const_range</span> <span class="identifier">r</span> <span class="special">=</span> <span class="identifier">m</span><span class="special">.</span><span class="identifier">range</span><span class="special">(</span> <span class="string">"one"</span> <span class="special">&lt;=</span> <span class="identifier">_key</span><span class="special">,</span> <span class="identifier">_key</span> <span class="special">&lt;=</span> <span class="string">"two"</span> <span class="special">);</span>
<span class="keyword">for</span><span class="special">(</span> <span class="identifier">const_iterator</span> <span class="identifier">i</span> <span class="special">=</span> <span class="identifier">r</span><span class="special">.</span><span class="identifier">first</span><span class="special">;</span> <span class="identifier">i</span> <span class="special">!=</span> <span class="identifier">r</span><span class="special">.</span><span class="identifier">second</span><span class="special">;</span> <span class="special">++</span><span class="identifier">i</span> <span class="special">)</span>
<span class="special">{</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">i</span><span class="special">-&gt;</span><span class="identifier">first</span> <span class="special">&lt;&lt;</span> <span class="string">"--&gt;"</span> <span class="special">&lt;&lt;</span> <span class="identifier">i</span><span class="special">-&gt;</span><span class="identifier">second</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
@@ -149,7 +145,7 @@
<p>
</p>
<div class="calloutlist"><table border="0" summary="Callout list"><tr>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap15"></a><a href="#boost_bimap15co"><img src="../../images/callouts/1.png" alt="1" border="0"></a> </p></td>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap15"></a><a href="#boost_bimap15co"><img src="../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a> </p></td>
<td valign="top" align="left"><p> This range is a model of BidirectionalRange, read the docs of Boost.Range
for more information. </p></td>
</tr></table></div>

View File

@@ -3,8 +3,8 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Useful functions</title>
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../../index.html" title="Chapter 1. Boost.Bimap">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter 1. Boost.Bimap">
<link rel="up" href="../the_tutorial.html" title="The tutorial">
<link rel="prev" href="differences_with_standard_maps.html" title="Differences with standard maps">
<link rel="next" href="bimaps_with_user_defined_names.html" title="Bimaps with user defined names">
@@ -14,15 +14,15 @@
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="differences_with_standard_maps.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../the_tutorial.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="bimaps_with_user_defined_names.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="section" title="Useful functions">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_bimap.the_tutorial.useful_functions"></a><a class="link" href="useful_functions.html" title="Useful functions">Useful functions</a>
</h3></div></div></div>
@@ -34,7 +34,7 @@
<dt><span class="section"><a href="useful_functions.html#boost_bimap.the_tutorial.useful_functions.retrieval_of_ranges">Retrieval
of ranges</a></span></dt>
</dl></div>
<div class="section" lang="en">
<div class="section" title="Projection of iterators">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_bimap.the_tutorial.useful_functions.projection_of_iterators"></a><a class="link" href="useful_functions.html#boost_bimap.the_tutorial.useful_functions.projection_of_iterators" title="Projection of iterators">Projection
of iterators</a>
@@ -59,8 +59,7 @@
<p>
</p>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span><span class="identifier">multiset_of</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">greater</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">bm_type</span><span class="special">;</span>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span><span class="identifier">multiset_of</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">greater</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">bm_type</span><span class="special">;</span>
<span class="identifier">bm_type</span> <span class="identifier">bm</span><span class="special">;</span>
<span class="identifier">bm</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span> <span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">value_type</span><span class="special">(</span><span class="string">"John"</span> <span class="special">,</span><span class="number">34</span><span class="special">)</span> <span class="special">);</span>
@@ -82,7 +81,7 @@
<p>
</p>
</div>
<div class="section" lang="en">
<div class="section" title="replace and modify">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_bimap.the_tutorial.useful_functions.replace_and_modify"></a><a class="link" href="useful_functions.html#boost_bimap.the_tutorial.useful_functions.replace_and_modify" title="replace and modify">replace
and modify</a>
@@ -105,8 +104,7 @@
<p>
</p>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&gt;</span> <span class="identifier">bm_type</span><span class="special">;</span>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&gt;</span> <span class="identifier">bm_type</span><span class="special">;</span>
<span class="identifier">bm_type</span> <span class="identifier">bm</span><span class="special">;</span>
<span class="identifier">bm</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span> <span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">value_type</span><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="string">"one"</span><span class="special">)</span> <span class="special">);</span>
@@ -130,7 +128,7 @@
<span class="keyword">bool</span> <span class="identifier">successful_replace</span> <span class="special">=</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">left</span><span class="special">.</span><span class="identifier">replace_data</span><span class="special">(</span> <span class="identifier">it</span><span class="special">,</span> <span class="string">"two"</span> <span class="special">);</span>
<span class="line_callout_bug"><a class="co" name="boost_bimap9co" href="useful_functions.html#boost_bimap9"><img src="../../images/callouts/1.png" alt="1" border="0"></a></span><span class="identifier">assert</span><span class="special">(</span> <span class="special">!</span> <span class="identifier">successful_replace</span> <span class="special">);</span>
<span class="line_callout_bug"><a class="co" name="boost_bimap9co" href="useful_functions.html#boost_bimap9"><img src="../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a></span><span class="identifier">assert</span><span class="special">(</span> <span class="special">!</span> <span class="identifier">successful_replace</span> <span class="special">);</span>
<span class="identifier">assert</span><span class="special">(</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span> <span class="special">==</span> <span class="number">2</span> <span class="special">);</span>
<span class="special">}</span>
</pre>
@@ -141,7 +139,7 @@
<p>
</p>
<div class="calloutlist"><table border="0" summary="Callout list"><tr>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap9"></a><a href="#boost_bimap9co"><img src="../../images/callouts/1.png" alt="1" border="0"></a> </p></td>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap9"></a><a href="#boost_bimap9co"><img src="../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a> </p></td>
<td valign="top" align="left"><p> <code class="computeroutput"><span class="identifier">it</span></code> is still valid here,
and the bimap was left unchanged </p></td>
</tr></table></div>
@@ -153,15 +151,15 @@
<code class="computeroutput"><span class="identifier">replace</span></code> functions performs
this substitution in such a manner that:
</p>
<div class="itemizedlist"><ul type="disc">
<li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
The complexity is constant time if the changed element retains its original
order with respect to all views; it is logarithmic otherwise.
</li>
<li>
<li class="listitem">
Iterator and reference validity are preserved.
</li>
<li>
<li class="listitem">
The operation is strongly exception-safe, i.e. the <code class="computeroutput"><span class="identifier">bimap</span></code>
remains unchanged if some exception (originated by the system or the
user's data types) is thrown.
@@ -215,8 +213,7 @@
<p>
</p>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&gt;</span> <span class="identifier">bm_type</span><span class="special">;</span>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&gt;</span> <span class="identifier">bm_type</span><span class="special">;</span>
<span class="identifier">bm_type</span> <span class="identifier">bm</span><span class="special">;</span>
<span class="identifier">bm</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span> <span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">value_type</span><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="string">"one"</span><span class="special">)</span> <span class="special">);</span>
@@ -239,7 +236,7 @@
<span class="keyword">bool</span> <span class="identifier">successful_modify</span> <span class="special">=</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">left</span><span class="special">.</span><span class="identifier">modify_data</span><span class="special">(</span> <span class="identifier">it</span><span class="special">,</span> <span class="identifier">_data</span> <span class="special">=</span> <span class="string">"two"</span> <span class="special">);</span>
<span class="line_callout_bug"><a class="co" name="boost_bimap10co" href="useful_functions.html#boost_bimap10"><img src="../../images/callouts/1.png" alt="1" border="0"></a></span><span class="identifier">assert</span><span class="special">(</span> <span class="special">!</span> <span class="identifier">successful_modify</span> <span class="special">);</span>
<span class="line_callout_bug"><a class="co" name="boost_bimap10co" href="useful_functions.html#boost_bimap10"><img src="../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a></span><span class="identifier">assert</span><span class="special">(</span> <span class="special">!</span> <span class="identifier">successful_modify</span> <span class="special">);</span>
<span class="identifier">assert</span><span class="special">(</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span> <span class="special">==</span> <span class="number">1</span> <span class="special">);</span>
<span class="special">}</span>
</pre>
@@ -250,7 +247,7 @@
<p>
</p>
<div class="calloutlist"><table border="0" summary="Callout list"><tr>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap10"></a><a href="#boost_bimap10co"><img src="../../images/callouts/1.png" alt="1" border="0"></a> </p></td>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap10"></a><a href="#boost_bimap10co"><img src="../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a> </p></td>
<td valign="top" align="left"><p> <code class="computeroutput"><span class="identifier">it</span></code> is not longer valid
and <code class="computeroutput"><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="string">"1"</span><span class="special">)</span></code> is removed from the bimap </p></td>
</tr></table></div>
@@ -259,7 +256,7 @@
<p>
</p>
</div>
<div class="section" lang="en">
<div class="section" title="Retrieval of ranges">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_bimap.the_tutorial.useful_functions.retrieval_of_ranges"></a><a class="link" href="useful_functions.html#boost_bimap.the_tutorial.useful_functions.retrieval_of_ranges" title="Retrieval of ranges">Retrieval
of ranges</a>
@@ -278,8 +275,7 @@
<p>
</p>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span> <span class="identifier">bm_type</span><span class="special">;</span>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span> <span class="identifier">bm_type</span><span class="special">;</span>
<span class="identifier">bm_type</span> <span class="identifier">bm</span><span class="special">;</span>
<span class="comment">// ...
@@ -303,8 +299,7 @@
<p>
</p>
<pre class="programlisting">
<span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">left_iterator</span> <span class="identifier">iter_first</span> <span class="special">=</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">left</span><span class="special">.</span><span class="identifier">upper_bound</span><span class="special">(</span><span class="number">20</span><span class="special">);</span>
<pre class="programlisting"><span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">left_iterator</span> <span class="identifier">iter_first</span> <span class="special">=</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">left</span><span class="special">.</span><span class="identifier">upper_bound</span><span class="special">(</span><span class="number">20</span><span class="special">);</span>
<span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">left_iterator</span> <span class="identifier">iter_second</span> <span class="special">=</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">left</span><span class="special">.</span><span class="identifier">lower_bound</span><span class="special">(</span><span class="number">50</span><span class="special">);</span>
<span class="comment">// range [iter_first,iter_second) contains the elements in (20,50)
@@ -331,15 +326,14 @@
<p>
</p>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span> <span class="identifier">bm_type</span><span class="special">;</span>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span> <span class="identifier">bm_type</span><span class="special">;</span>
<span class="identifier">bm_type</span> <span class="identifier">bm</span><span class="special">;</span>
<span class="comment">// ...
</span>
<span class="line_callout_bug"><a class="co" name="boost_bimap11co" href="useful_functions.html#boost_bimap11"><img src="../../images/callouts/1.png" alt="1" border="0"></a></span><span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">left_range_type</span> <span class="identifier">r</span><span class="special">;</span>
<span class="line_callout_bug"><a class="co" name="boost_bimap11co" href="useful_functions.html#boost_bimap11"><img src="../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a></span><span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">left_range_type</span> <span class="identifier">r</span><span class="special">;</span>
<span class="line_callout_bug"><a class="co" name="boost_bimap12co" href="useful_functions.html#boost_bimap12"><img src="../../images/callouts/2.png" alt="2" border="0"></a></span><span class="identifier">r</span> <span class="special">=</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">left</span><span class="special">.</span><span class="identifier">range</span><span class="special">(</span> <span class="number">20</span> <span class="special">&lt;=</span> <span class="identifier">_key</span><span class="special">,</span> <span class="identifier">_key</span> <span class="special">&lt;=</span> <span class="number">50</span> <span class="special">);</span> <span class="comment">// [20,50]
<span class="line_callout_bug"><a class="co" name="boost_bimap12co" href="useful_functions.html#boost_bimap12"><img src="../../../../../../doc/src/images/callouts/2.png" alt="2" border="0"></a></span><span class="identifier">r</span> <span class="special">=</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">left</span><span class="special">.</span><span class="identifier">range</span><span class="special">(</span> <span class="number">20</span> <span class="special">&lt;=</span> <span class="identifier">_key</span><span class="special">,</span> <span class="identifier">_key</span> <span class="special">&lt;=</span> <span class="number">50</span> <span class="special">);</span> <span class="comment">// [20,50]
</span>
<span class="identifier">r</span> <span class="special">=</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">left</span><span class="special">.</span><span class="identifier">range</span><span class="special">(</span> <span class="number">20</span> <span class="special">&lt;</span> <span class="identifier">_key</span><span class="special">,</span> <span class="identifier">_key</span> <span class="special">&lt;</span> <span class="number">50</span> <span class="special">);</span> <span class="comment">// (20,50)
</span>
@@ -353,13 +347,13 @@
</p>
<div class="calloutlist"><table border="0" summary="Callout list">
<tr>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap11"></a><a href="#boost_bimap11co"><img src="../../images/callouts/1.png" alt="1" border="0"></a> </p></td>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap11"></a><a href="#boost_bimap11co"><img src="../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a> </p></td>
<td valign="top" align="left"><p> <code class="computeroutput"><span class="identifier">range_type</span></code> is a handy
typedef equal to <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">,</span><span class="identifier">iterator</span><span class="special">&gt;</span></code>. <code class="computeroutput"><span class="identifier">const_range_type</span></code>
is provided too, and it is equal to <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">const_iterator</span><span class="special">,</span><span class="identifier">const_iterator</span><span class="special">&gt;</span></code> </p></td>
</tr>
<tr>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap12"></a><a href="#boost_bimap12co"><img src="../../images/callouts/2.png" alt="2" border="0"></a> </p></td>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap12"></a><a href="#boost_bimap12co"><img src="../../../../../../doc/src/images/callouts/2.png" alt="2" border="0"></a> </p></td>
<td valign="top" align="left"><p> _key is a Boost.Lambda placeholder.
To use it you have to include <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">bimap</span><span class="special">/</span><span class="identifier">support</span><span class="special">/</span><span class="identifier">lambda</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p></td>
@@ -383,12 +377,11 @@
<p>
</p>
<pre class="programlisting">
<span class="identifier">r</span> <span class="special">=</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">left</span><span class="special">.</span><span class="identifier">range</span><span class="special">(</span> <span class="number">20</span> <span class="special">&lt;=</span> <span class="identifier">_key</span><span class="special">,</span> <span class="identifier">unbounded</span> <span class="special">);</span> <span class="comment">// [20,inf)
<pre class="programlisting"><span class="identifier">r</span> <span class="special">=</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">left</span><span class="special">.</span><span class="identifier">range</span><span class="special">(</span> <span class="number">20</span> <span class="special">&lt;=</span> <span class="identifier">_key</span><span class="special">,</span> <span class="identifier">unbounded</span> <span class="special">);</span> <span class="comment">// [20,inf)
</span>
<span class="identifier">r</span> <span class="special">=</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">left</span><span class="special">.</span><span class="identifier">range</span><span class="special">(</span> <span class="identifier">unbounded</span> <span class="special">,</span> <span class="identifier">_key</span> <span class="special">&lt;</span> <span class="number">50</span> <span class="special">);</span> <span class="comment">// (-inf,50)
</span>
<span class="line_callout_bug"><a class="co" name="boost_bimap13co" href="useful_functions.html#boost_bimap13"><img src="../../images/callouts/1.png" alt="1" border="0"></a></span><span class="identifier">r</span> <span class="special">=</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">left</span><span class="special">.</span><span class="identifier">range</span><span class="special">(</span> <span class="identifier">unbounded</span> <span class="special">,</span> <span class="identifier">unbounded</span> <span class="special">);</span> <span class="comment">// (-inf,inf)
<span class="line_callout_bug"><a class="co" name="boost_bimap13co" href="useful_functions.html#boost_bimap13"><img src="../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a></span><span class="identifier">r</span> <span class="special">=</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">left</span><span class="special">.</span><span class="identifier">range</span><span class="special">(</span> <span class="identifier">unbounded</span> <span class="special">,</span> <span class="identifier">unbounded</span> <span class="special">);</span> <span class="comment">// (-inf,inf)
</span></pre>
<p>
</p>
@@ -397,7 +390,7 @@
<p>
</p>
<div class="calloutlist"><table border="0" summary="Callout list"><tr>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap13"></a><a href="#boost_bimap13co"><img src="../../images/callouts/1.png" alt="1" border="0"></a> </p></td>
<td width="5%" valign="top" align="left"><p><a name="boost_bimap13"></a><a href="#boost_bimap13co"><img src="../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a> </p></td>
<td valign="top" align="left"><p> This is equivalent to std::make_pair(s.begin(),s.end()) </p></td>
</tr></table></div>
<p>

View File

@@ -3,8 +3,8 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Chapter 1. Boost.Bimap</title>
<link rel="stylesheet" href="boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="index.html" title="Chapter 1. Boost.Bimap">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="index.html" title="Chapter 1. Boost.Bimap">
<link rel="next" href="boost_bimap/introduction.html" title="Introduction">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -12,13 +12,13 @@
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav"><a accesskey="n" href="boost_bimap/introduction.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a></div>
<div class="chapter" lang="en">
<div class="chapter" title="Chapter 1. Boost.Bimap">
<div class="titlepage"><div>
<div><h2 class="title">
<a name="bimap"></a>Chapter 1. Boost.Bimap</h2></div>
@@ -26,8 +26,8 @@
<span class="firstname">Matias</span> <span class="surname">Capeletto</span>
</h3></div></div>
<div><p class="copyright">Copyright © 2006 -2007 Matias Capeletto</p></div>
<div><div class="legalnotice">
<a name="id2625900"></a><p>
<div><div class="legalnotice" title="Legal Notice">
<a name="id553942"></a><p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
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>)
</p>
@@ -115,12 +115,12 @@
<dt><span class="section"><a href="boost_bimap/acknowledgements.html">Acknowledgements</a></span></dt>
</dl>
</div>
<div class="section" lang="en">
<div class="section" title="Preface">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="bimap.preface"></a><a class="link" href="index.html#bimap.preface" title="Preface">Preface</a>
</h2></div></div></div>
<a name="bimap.preface.description"></a><h4>
<a name="id2625944"></a>
<a name="id553973"></a>
<a class="link" href="index.html#bimap.preface.description">Description</a>
</h4>
<p>
@@ -137,7 +137,7 @@
containers.
</p>
<a name="bimap.preface.influences_and_related_work"></a><h4>
<a name="id2586415"></a>
<a name="id554118"></a>
<a class="link" href="index.html#bimap.preface.influences_and_related_work">Influences and Related
Work</a>
</h4>
@@ -149,7 +149,7 @@
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"><p><small>Last revised: March 15, 2008 at 13:59:41 GMT</small></p></td>
<td align="left"><p><small>Last revised: November 20, 2009 at 09:43:59 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td>
</tr></table>
<hr>