]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/bimap/doc/html/boost_bimap/reference/list_of_reference.html
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / bimap / doc / html / boost_bimap / reference / list_of_reference.html
CommitLineData
7c673cae
FG
1<html>
2<head>
3<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
4<title>list_of Reference</title>
5<link rel="stylesheet" href="../../boostbook.css" type="text/css">
6<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
7<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.Bimap">
8<link rel="up" href="../reference.html" title="Reference">
9<link rel="prev" href="unordered_set_of_reference.html" title="unordered_set_of Reference">
10<link rel="next" href="vector_of_reference.html" title="vector_of Reference">
11</head>
12<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
13<table cellpadding="2" width="100%"><tr>
14<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
15<td align="center"><a href="../../../../../../index.html">Home</a></td>
16<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
17<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
18<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
19<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
20</tr></table>
21<hr>
22<div class="spirit-nav">
23<a accesskey="p" href="unordered_set_of_reference.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="vector_of_reference.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
24</div>
25<div class="section boost_bimap_reference_list_of_reference">
26<div class="titlepage"><div><div><h3 class="title">
27<a name="boost_bimap.reference.list_of_reference"></a><a class="link" href="list_of_reference.html" title="list_of Reference">list_of Reference</a>
28</h3></div></div></div>
29<div class="toc"><dl>
30<dt><span class="section"><a href="list_of_reference.html#boost_bimap.reference.list_of_reference.header__boost_bimap_list_of_hpp__synopsis">Header
31 "boost/bimap/list_of.hpp" synopsis</a></span></dt>
32<dt><span class="section"><a href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views">list_of
33 Views</a></span></dt>
34<dd><dl>
35<dt><span class="section"><a href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.complexity_signature">Complexity
36 signature</a></span></dt>
37<dt><span class="section"><a href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.instantiation_types">Instantiation
38 types</a></span></dt>
39<dt><span class="section"><a href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.constructors__copy_and_assignment">Constructors,
40 copy and assignment</a></span></dt>
41<dt><span class="section"><a href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.capacity_operations">Capacity
42 operations</a></span></dt>
43<dt><span class="section"><a href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.modifiers">Modifiers</a></span></dt>
44<dt><span class="section"><a href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.list_operations">List
45 operations</a></span></dt>
46<dt><span class="section"><a href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.rearrange_operations">Rearrange
47 operations</a></span></dt>
48<dt><span class="section"><a href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.serialization">Serialization</a></span></dt>
49</dl></dd>
50</dl></div>
51<div class="section boost_bimap_reference_list_of_reference_header__boost_bimap_list_of_hpp__synopsis">
52<div class="titlepage"><div><div><h4 class="title">
53<a name="boost_bimap.reference.list_of_reference.header__boost_bimap_list_of_hpp__synopsis"></a><a class="link" href="list_of_reference.html#boost_bimap.reference.list_of_reference.header__boost_bimap_list_of_hpp__synopsis" title='Header "boost/bimap/list_of.hpp" synopsis'>Header
54 "boost/bimap/list_of.hpp" synopsis</a>
55</h4></div></div></div>
56<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
57<span class="keyword">namespace</span> <span class="identifier">bimaps</span> <span class="special">{</span>
58
59
60<span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">KeyType</span> <span class="special">&gt;</span>
61<span class="keyword">struct</span> <span class="identifier">list_of</span><span class="special">;</span>
62
63<span class="keyword">struct</span> <span class="identifier">list_of_relation</span><span class="special">;</span>
64
65
66<span class="special">}</span> <span class="comment">// namespace bimap</span>
67<span class="special">}</span> <span class="comment">// namespace boost</span>
68</pre>
69</div>
70<div class="section boost_bimap_reference_list_of_reference_list_of_views">
71<div class="titlepage"><div><div><h4 class="title">
72<a name="boost_bimap.reference.list_of_reference.list_of_views"></a><a class="link" href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views" title="list_of Views">list_of
73 Views</a>
74</h4></div></div></div>
75<div class="toc"><dl>
76<dt><span class="section"><a href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.complexity_signature">Complexity
77 signature</a></span></dt>
78<dt><span class="section"><a href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.instantiation_types">Instantiation
79 types</a></span></dt>
80<dt><span class="section"><a href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.constructors__copy_and_assignment">Constructors,
81 copy and assignment</a></span></dt>
82<dt><span class="section"><a href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.capacity_operations">Capacity
83 operations</a></span></dt>
84<dt><span class="section"><a href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.modifiers">Modifiers</a></span></dt>
85<dt><span class="section"><a href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.list_operations">List
86 operations</a></span></dt>
87<dt><span class="section"><a href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.rearrange_operations">Rearrange
88 operations</a></span></dt>
89<dt><span class="section"><a href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.serialization">Serialization</a></span></dt>
90</dl></div>
91<p>
92 A list_of set view is a std::list signature compatible interface to the
93 underlying heap of elements contained in a <code class="computeroutput"><span class="identifier">bimap</span></code>.
94 </p>
95<p>
96 If you look the bimap by a side, you will use a map view and if you looked
97 it as a whole you will be using a set view.
98 </p>
99<p>
100 Elements in a list_of view are by default sorted according to their order
101 of insertion: this means that new elements inserted through a different
102 view of the <code class="computeroutput"><span class="identifier">bimap</span></code> are appended
103 to the end of the list_of view. Additionally, the view allows for free
104 reordering of elements in the same vein as <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span></code>
105 does. Validity of iterators and references to elements is preserved in
106 all operations.
107 </p>
108<p>
109 There are a number of differences with respect to <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">lists</span></code>:
110 </p>
111<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
112<li class="listitem">
113 list_of views are not <a href="http://www.sgi.com/tech/stl/Assignable.html" target="_top">Assignable</a>
114 (like any other view.)
115 </li>
116<li class="listitem">
117 Unlike as in <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span></code>, insertions into a list_of view
118 may fail due to clashings with other views. This alters the semantics
119 of the operations provided with respect to their analogues in <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span></code>.
120 </li>
121<li class="listitem">
122 Elements in a list_of view are not mutable, and can only be changed
123 by means of <code class="computeroutput"><span class="identifier">replace</span></code>
124 and <code class="computeroutput"><span class="identifier">modify</span></code> member functions.
125 </li>
126</ul></div>
127<p>
128 Having these restrictions into account, list_of views are models of <a href="http://www.sgi.com/tech/stl/ReversibleContainer.html" target="_top">Reversible Container</a>,
129 <a href="http://www.sgi.com/tech/stl/FrontInsertionSequence.html" target="_top">Front
130 Insertion Sequence</a> and <a href="http://www.sgi.com/tech/stl/BackInsertionSequence.html" target="_top">Back
131 Insertion Sequence</a>. We only provide descriptions of those types
132 and operations that are either not present in the concepts modeled or do
133 not exactly conform to the requirements for these types of containers.
134 </p>
135<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
136<span class="keyword">namespace</span> <span class="identifier">bimaps</span> <span class="special">{</span>
137<span class="keyword">namespace</span> <span class="identifier">views</span> <span class="special">{</span>
138
139<span class="keyword">template</span><span class="special">&lt;</span> <span class="emphasis"><em>-implementation defined parameter list-</em></span> <span class="special">&gt;</span>
140<span class="keyword">class</span> <span class="emphasis"><em>-implementation defined view name-</em></span>
141<span class="special">{</span>
142 <span class="keyword">public</span><span class="special">:</span>
143
144 <span class="comment">// types</span>
145
146 <span class="keyword">typedef</span> <span class="emphasis"><em>-unspecified-</em></span> <span class="identifier">value_type</span><span class="special">;</span>
147 <span class="keyword">typedef</span> <span class="emphasis"><em>-unspecified-</em></span> <span class="identifier">allocator_type</span><span class="special">;</span>
148 <span class="keyword">typedef</span> <span class="emphasis"><em>-unspecified-</em></span> <span class="identifier">reference</span><span class="special">;</span>
149 <span class="keyword">typedef</span> <span class="emphasis"><em>-unspecified-</em></span> <span class="identifier">const_reference</span><span class="special">;</span>
150 <span class="keyword">typedef</span> <span class="emphasis"><em>-unspecified-</em></span> <span class="identifier">iterator</span><span class="special">;</span>
151 <span class="keyword">typedef</span> <span class="emphasis"><em>-unspecified-</em></span> <span class="identifier">const_iterator</span><span class="special">;</span>
152 <span class="keyword">typedef</span> <span class="emphasis"><em>-unspecified-</em></span> <span class="identifier">size_type</span><span class="special">;</span>
153 <span class="keyword">typedef</span> <span class="emphasis"><em>-unspecified-</em></span> <span class="identifier">difference_type</span><span class="special">;</span>
154 <span class="keyword">typedef</span> <span class="emphasis"><em>-unspecified-</em></span> <span class="identifier">pointer</span><span class="special">;</span>
155 <span class="keyword">typedef</span> <span class="emphasis"><em>-unspecified-</em></span> <span class="identifier">const_pointer</span><span class="special">;</span>
156 <span class="keyword">typedef</span> <span class="emphasis"><em>-unspecified-</em></span> <span class="identifier">reverse_iterator</span><span class="special">;</span>
157 <span class="keyword">typedef</span> <span class="emphasis"><em>-unspecified-</em></span> <span class="identifier">const_reverse_iterator</span><span class="special">;</span>
158
159 <span class="keyword">typedef</span> <span class="emphasis"><em>-unspecified-</em></span> <span class="identifier">info_type</span><span class="special">;</span>
160
161 <span class="comment">// construct/copy/destroy</span>
162
163 <span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">=(</span><span class="keyword">const</span> <span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
164
165 <span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">InputIterator</span> <span class="special">&gt;</span>
166 <span class="keyword">void</span> <a class="link" href="list_of_reference.html#reference_list_of_assign_iterator_iterator">assign</a><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>
167
168 <span class="keyword">void</span> <a class="link" href="list_of_reference.html#reference_list_of_assign_size_value">assign</a><span class="special">(</span><span class="identifier">size_type</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="special">&amp;</span> <span class="identifier">value</span><span class="special">);</span>
169
170 <span class="identifier">allocator_type</span> <span class="identifier">get_allocator</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
171
172 <span class="comment">// iterators</span>
173
174 <span class="identifier">iterator</span> <span class="identifier">begin</span><span class="special">();</span>
175 <span class="identifier">const_iterator</span> <span class="identifier">begin</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
176
177 <span class="identifier">iterator</span> <span class="identifier">end</span><span class="special">();</span>
178 <span class="identifier">const_iterator</span> <span class="identifier">end</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
179
180 <span class="identifier">reverse_iterator</span> <span class="identifier">rbegin</span><span class="special">();</span>
181 <span class="identifier">const_reverse_iterator</span> <span class="identifier">rbegin</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
182
183 <span class="identifier">reverse_iterator</span> <span class="identifier">rend</span><span class="special">();</span>
184 <span class="identifier">const_reverse_iterator</span> <span class="identifier">rend</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
185
186 <span class="comment">// capacity</span>
187
188 <span class="keyword">bool</span> <span class="identifier">empty</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
189
190 <span class="identifier">size_type</span> <span class="identifier">size</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
191
192 <span class="identifier">size_type</span> <span class="identifier">max_size</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
193
194 <span class="keyword">void</span> <a class="link" href="list_of_reference.html#reference_list_of_resize_size_value">resize</a><span class="special">(</span><span class="identifier">size_type</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="special">&amp;</span> <span class="identifier">x</span> <span class="special">=</span> <span class="identifier">value_type</span><span class="special">());</span>
195
196 <span class="comment">// access</span>
197
198 <span class="identifier">const_reference</span> <span class="identifier">front</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
199 <span class="identifier">const_reference</span> <span class="identifier">back</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
200
201 <span class="comment">// modifiers</span>
202
203 <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="keyword">bool</span><span class="special">&gt;</span> <a class="link" href="list_of_reference.html#reference_list_of_push_front_value">push_front</a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">value_type</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
204 <span class="keyword">void</span> <span class="identifier">pop_front</span><span class="special">();</span>
205
206 <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="keyword">bool</span><span class="special">&gt;</span> <a class="link" href="list_of_reference.html#reference_list_of_push_back_value">push_back</a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">value_type</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
207 <span class="keyword">void</span> <span class="identifier">pop_back</span><span class="special">();</span>
208
209 <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="keyword">bool</span><span class="special">&gt;</span> <a class="link" href="list_of_reference.html#reference_list_of_insert_iterator_value">insert</a><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
210
211 <span class="keyword">void</span> <a class="link" href="list_of_reference.html#reference_list_of_insert_iterator_size_value">insert</a><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="identifier">size_type</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
212
213 <span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">InputIterator</span> <span class="special">&gt;</span>
214 <span class="keyword">void</span> <a class="link" href="list_of_reference.html#reference_list_of_insert_iterator_iterator_iterator">insert</a><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</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>
215
216 <span class="identifier">iterator</span> <a class="link" href="list_of_reference.html#reference_list_of_erase_iterator">erase</a><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">);</span>
217 <span class="identifier">iterator</span> <a class="link" href="list_of_reference.html#reference_list_of_erase_iterator_iterator">erase</a><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">iterator</span> <span class="identifier">last</span><span class="special">);</span>
218
219 <span class="keyword">bool</span> <a class="link" href="list_of_reference.html#reference_list_of_replace_iterator_value">replace</a><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
220
221 <span class="comment">// Only in map views</span>
222 <span class="comment">// {</span>
223
224 <span class="keyword">typedef</span> <span class="emphasis"><em>-unspecified-</em></span> <span class="identifier">key_type</span><span class="special">;</span>
225 <span class="keyword">typedef</span> <span class="emphasis"><em>-unspecified-</em></span> <span class="identifier">mapped_type</span><span class="special">;</span>
226 <span class="keyword">typedef</span> <span class="emphasis"><em>-unspecified-</em></span> <span class="identifier">mapped_type</span><span class="special">;</span> <span class="comment">// Equal to mapped_type</span>
227
228 <span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">CompatibleKey</span> <span class="special">&gt;</span>
229 <span class="keyword">bool</span> <a class="link" href="list_of_reference.html#reference_list_of_replace_key_iterator_key">replace_key</a><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">CompatibleKey</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
230
231 <span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">CompatibleData</span> <span class="special">&gt;</span>
232 <span class="keyword">bool</span> <a class="link" href="list_of_reference.html#reference_list_of_replace_data_iterator_data">replace_data</a><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">CompatibleData</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
233
234 <span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">KeyModifier</span> <span class="special">&gt;</span>
235 <span class="keyword">bool</span> <a class="link" href="list_of_reference.html#reference_list_of_modify_key_iterator_modifier">modify_key</a><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="identifier">KeyModifier</span> <span class="identifier">mod</span><span class="special">);</span>
236
237 <span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">DataModifier</span> <span class="special">&gt;</span>
238 <span class="keyword">bool</span> <a class="link" href="list_of_reference.html#reference_list_of_modify_data_iterator_modifier">modify_data</a><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="identifier">DataModifier</span> <span class="identifier">mod</span><span class="special">);</span>
239
240 <span class="comment">// }</span>
241
242
243 <span class="keyword">void</span> <span class="identifier">clear</span><span class="special">();</span>
244
245 <span class="comment">// list operations</span>
246
247 <span class="keyword">void</span> <a class="link" href="list_of_reference.html#reference_list_of_splice_iterator_this">splice</a><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
248 <span class="keyword">void</span> <a class="link" href="list_of_reference.html#reference_list_of_splice_iterator_this_iterator">splice</a><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">iterator</span> <span class="identifier">i</span><span class="special">);</span>
249 <span class="keyword">void</span> <span class="identifier">splice</span><span class="special">(</span>
250 <span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">iterator</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">iterator</span> <span class="identifier">last</span><span class="special">);</span>
251
252 <span class="keyword">void</span> <a class="link" href="list_of_reference.html#reference_list_of_remove_value">remove</a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">value_type</span> <span class="special">&amp;</span> <span class="identifier">value</span><span class="special">);</span>
253
254 <span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">Predicate</span> <span class="special">&gt;</span>
255 <span class="keyword">void</span> <a class="link" href="list_of_reference.html#reference_list_of_remove_if_predicate">remove_if</a><span class="special">(</span><span class="identifier">Predicate</span> <span class="identifier">pred</span><span class="special">);</span>
256
257 <span class="keyword">void</span> <a class="link" href="list_of_reference.html#reference_list_of_unique">unique</a><span class="special">();</span>
258
259 <span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">BinaryPredicate</span> <span class="special">&gt;</span>
260 <span class="keyword">void</span> <a class="link" href="list_of_reference.html#reference_list_of_unique_predicate">unique</a><span class="special">(</span><span class="identifier">BinaryPredicate</span> <span class="identifier">binary_pred</span><span class="special">);</span>
261
262 <span class="keyword">void</span> <a class="link" href="list_of_reference.html#reference_list_of_merge_this">merge</a><span class="special">(</span><span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
263
264 <span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">Compare</span> <span class="special">&gt;</span>
265 <span class="keyword">void</span> <a class="link" href="list_of_reference.html#reference_list_of_merge_this_compare">merge</a><span class="special">(</span><span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">,</span><span class="identifier">Compare</span> <span class="identifier">comp</span><span class="special">);</span>
266
267 <span class="keyword">void</span> <a class="link" href="list_of_reference.html#reference_list_of_sort">sort</a><span class="special">();</span>
268
269 <span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">Compare</span> <span class="special">&gt;</span>
270 <span class="keyword">void</span> <a class="link" href="list_of_reference.html#reference_list_of_sort_compare">sort</a><span class="special">(</span><span class="identifier">Compare</span> <span class="identifier">comp</span><span class="special">);</span>
271
272 <span class="keyword">void</span> <a class="link" href="list_of_reference.html#reference_list_of_reverse">reverse</a><span class="special">();</span>
273
274 <span class="comment">// rearrange operations</span>
275
276 <span class="keyword">void</span> <span class="identifier">relocate</span><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="identifier">iterator</span> <span class="identifier">i</span><span class="special">);</span>
277 <span class="keyword">void</span> <span class="identifier">relocate</span><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="identifier">iterator</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">iterator</span> <span class="identifier">last</span><span class="special">);</span>
278
279<span class="special">}</span>
280
281<span class="comment">// view comparison</span>
282
283<span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">==(</span><span class="keyword">const</span> <span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">v1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">v2</span> <span class="special">);</span>
284<span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">&lt;</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">v1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">v2</span> <span class="special">);</span>
285<span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">!=(</span><span class="keyword">const</span> <span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">v1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">v2</span> <span class="special">);</span>
286<span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">&gt;</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">v1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">v2</span> <span class="special">);</span>
287<span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">&gt;=(</span><span class="keyword">const</span> <span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">v1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">v2</span> <span class="special">);</span>
288<span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">&lt;=(</span><span class="keyword">const</span> <span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">v1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">v2</span> <span class="special">);</span>
289
290<span class="special">}</span> <span class="comment">// namespace views</span>
291<span class="special">}</span> <span class="comment">// namespace bimap</span>
292<span class="special">}</span> <span class="comment">// namespace boost</span>
293</pre>
294<p>
295 In the case of a <code class="computeroutput"><span class="identifier">bimap</span><span class="special">&lt;</span> <span class="identifier">list_of</span><span class="special">&lt;</span><span class="identifier">Left</span><span class="special">&gt;,</span> <span class="special">...</span> <span class="special">&gt;</span></code>
296 </p>
297<p>
298 In the set view:
299 </p>
300<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>
301<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>
302</pre>
303<p>
304 In the left map view:
305 </p>
306<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">Left</span> <span class="identifier">key_type</span><span class="special">;</span>
307<span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">mapped_type</span><span class="special">;</span>
308
309<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>
310</pre>
311<p>
312 In the right map view:
313 </p>
314<pre class="programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">key_type</span><span class="special">;</span>
315<span class="keyword">typedef</span> <span class="identifier">Left</span> <span class="identifier">mapped_type</span><span class="special">;</span>
316
317<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>
318</pre>
319<div class="section boost_bimap_reference_list_of_reference_list_of_views_complexity_signature">
320<div class="titlepage"><div><div><h5 class="title">
321<a name="boost_bimap.reference.list_of_reference.list_of_views.complexity_signature"></a><a name="list_of_complexity_signature"></a><a class="link" href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.complexity_signature" title="Complexity signature">Complexity
322 signature</a>
323</h5></div></div></div>
324<p>
325 Here and in the descriptions of operations of <code class="computeroutput"><span class="identifier">list_of</span></code>
326 views, we adopt the scheme outlined in the <a class="link" href="bimap_reference.html#complexity_signature_explanation">complexity
327 signature section</a>. The complexity signature of a <code class="computeroutput"><span class="identifier">list_of</span></code> view is:
328 </p>
329<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
330<li class="listitem">
331 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="identifier">n</span> <span class="special">*</span> <span class="identifier">log</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span></code>,
332 </li>
333<li class="listitem">
334 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">1</span></code>
335 (constant),
336 </li>
337<li class="listitem">
338 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">1</span></code> (constant),
339 </li>
340<li class="listitem">
341 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">1</span></code>
342 (constant),
343 </li>
344<li class="listitem">
345 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">1</span></code>
346 (constant),
347 </li>
348<li class="listitem">
349 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">1</span></code>
350 (constant).
351 </li>
352</ul></div>
353</div>
354<div class="section boost_bimap_reference_list_of_reference_list_of_views_instantiation_types">
355<div class="titlepage"><div><div><h5 class="title">
356<a name="boost_bimap.reference.list_of_reference.list_of_views.instantiation_types"></a><a class="link" href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.instantiation_types" title="Instantiation types">Instantiation
357 types</a>
358</h5></div></div></div>
359<p>
360 <code class="computeroutput"><span class="identifier">list_of</span></code> views are instantiated
361 internally to <code class="computeroutput"><span class="identifier">bimap</span></code> and
362 specified by means of the collection type specifiers and the bimap itself.
363 Instantiations are dependent on the following types:
364 </p>
365<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
366<li class="listitem">
367 <code class="computeroutput"><span class="identifier">Value</span></code> from <code class="computeroutput"><span class="identifier">list_of</span></code>,
368 </li>
369<li class="listitem">
370 <code class="computeroutput"><span class="identifier">Allocator</span></code> from <code class="computeroutput"><span class="identifier">bimap</span></code>,
371 </li>
372</ul></div>
373</div>
374<div class="section boost_bimap_reference_list_of_reference_list_of_views_constructors__copy_and_assignment">
375<div class="titlepage"><div><div><h5 class="title">
376<a name="boost_bimap.reference.list_of_reference.list_of_views.constructors__copy_and_assignment"></a><a class="link" href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.constructors__copy_and_assignment" title="Constructors, copy and assignment">Constructors,
377 copy and assignment</a>
378</h5></div></div></div>
379<p>
380 As explained in the view concepts section, views do not have public constructors
381 or destructors. Assignment, on the other hand, is provided.
382 </p>
383<pre class="programlisting"><span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">=(</span><span class="keyword">const</span> <span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
384</pre>
385<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
386<li class="listitem">
387 <span class="bold"><strong>Effects: </strong></span> <code class="computeroutput"><span class="identifier">a</span>
388 <span class="special">=</span> <span class="identifier">b</span><span class="special">;</span></code> where a and b are the <code class="computeroutput"><span class="identifier">bimap</span></code> objects to which <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
389 and <code class="computeroutput"><span class="identifier">x</span></code> belong, respectively.
390 </li>
391<li class="listitem">
392 <span class="bold"><strong>Returns: </strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
393 </li>
394</ul></div>
395<a name="reference_list_of_assign_iterator_iterator"></a><pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">InputIterator</span> <span class="special">&gt;</span>
396<span class="keyword">void</span> <span class="identifier">assign</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>
397</pre>
398<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
399<li class="listitem">
400 <span class="bold"><strong>Requires: </strong></span> <code class="computeroutput"><span class="identifier">InputIterator</span></code>
401 is a model of <a href="http://www.sgi.com/tech/stl/InputIterator.html" target="_top">Input
402 Iterator</a> over elements of type <code class="computeroutput"><span class="identifier">value_type</span></code>
403 or a type convertible to <code class="computeroutput"><span class="identifier">value_type</span></code>.
404 first and last are not iterators into any views of the <code class="computeroutput"><span class="identifier">bimap</span></code> to which this view belongs.
405 <code class="computeroutput"><span class="identifier">last</span></code> is reachable
406 from <code class="computeroutput"><span class="identifier">first</span></code>.
407 </li>
408<li class="listitem">
409 <span class="bold"><strong>Effects: </strong></span> <code class="computeroutput"><span class="identifier">clear</span><span class="special">();</span> <span class="identifier">insert</span><span class="special">(</span><span class="identifier">end</span><span class="special">(),</span><span class="identifier">first</span><span class="special">,</span><span class="identifier">last</span><span class="special">);</span></code>
410 </li>
411</ul></div>
412<a name="reference_list_of_assign_size_value"></a><pre class="programlisting"><span class="keyword">void</span> <span class="identifier">assign</span><span class="special">(</span><span class="identifier">size_type</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="special">&amp;</span> <span class="identifier">value</span><span class="special">);</span>
413</pre>
414<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
415 <span class="bold"><strong>Effects: </strong></span> <code class="computeroutput"><span class="identifier">clear</span><span class="special">();</span> <span class="keyword">for</span><span class="special">(</span><span class="identifier">size_type</span>
416 <span class="identifier">i</span> <span class="special">=</span>
417 <span class="number">0</span><span class="special">;</span>
418 <span class="identifier">i</span> <span class="special">&lt;</span>
419 <span class="identifier">n</span> <span class="special">;</span>
420 <span class="special">++</span><span class="identifier">n</span><span class="special">)</span> <span class="identifier">push_back</span><span class="special">(</span><span class="identifier">v</span><span class="special">);</span></code>
421 </li></ul></div>
422</div>
423<div class="section boost_bimap_reference_list_of_reference_list_of_views_capacity_operations">
424<div class="titlepage"><div><div><h5 class="title">
425<a name="boost_bimap.reference.list_of_reference.list_of_views.capacity_operations"></a><a class="link" href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.capacity_operations" title="Capacity operations">Capacity
426 operations</a>
427</h5></div></div></div>
428<a name="reference_list_of_resize_size_value"></a><pre class="programlisting"><span class="keyword">void</span> <span class="identifier">resize</span><span class="special">(</span><span class="identifier">size_type</span> <span class="identifier">n</span><span class="special">,</span><span class="keyword">const</span> <span class="identifier">value_type</span><span class="special">&amp;</span> <span class="identifier">x</span><span class="special">=</span><span class="identifier">value_type</span><span class="special">());</span>
429</pre>
430<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
431<li class="listitem">
432 <span class="bold"><strong>Effects: </strong></span> <code class="computeroutput"><span class="keyword">if</span><span class="special">(</span> <span class="identifier">n</span> <span class="special">&gt;</span> <span class="identifier">size</span><span class="special">()</span> <span class="special">)</span> <span class="identifier">insert</span><span class="special">(</span><span class="identifier">end</span><span class="special">(),</span>
433 <span class="identifier">n</span> <span class="special">-</span>
434 <span class="identifier">size</span><span class="special">(),</span>
435 <span class="identifier">x</span><span class="special">);</span></code>
436 <code class="computeroutput"><span class="keyword">else</span> <span class="keyword">if</span><span class="special">(</span> <span class="identifier">n</span> <span class="special">&lt;</span> <span class="identifier">size</span><span class="special">()</span> <span class="special">)</span> <span class="special">{</span></code> <code class="computeroutput"> <span class="identifier">iterator</span>
437 <span class="identifier">it</span> <span class="special">=</span>
438 <span class="identifier">begin</span><span class="special">();</span></code>
439 <code class="computeroutput"> <span class="identifier">std</span><span class="special">::</span><span class="identifier">advance</span><span class="special">(</span><span class="identifier">it</span><span class="special">,</span> <span class="identifier">n</span><span class="special">);</span></code>
440 <code class="computeroutput"> <span class="identifier">erase</span><span class="special">(</span><span class="identifier">it</span><span class="special">,</span> <span class="identifier">end</span><span class="special">());</span></code>
441 <code class="computeroutput"><span class="special">}</span></code>
442 </li>
443<li class="listitem">
444 <span class="bold"><strong>Note:</strong></span> If an expansion is requested,
445 the size of the view is not guaranteed to be n after this operation
446 (other views may ban insertions.)
447 </li>
448</ul></div>
449</div>
450<div class="section boost_bimap_reference_list_of_reference_list_of_views_modifiers">
451<div class="titlepage"><div><div><h5 class="title">
452<a name="boost_bimap.reference.list_of_reference.list_of_views.modifiers"></a><a class="link" href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.modifiers" title="Modifiers">Modifiers</a>
453</h5></div></div></div>
454<a name="reference_list_of_push_front_value"></a><pre class="programlisting"><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="keyword">bool</span><span class="special">&gt;</span> <span class="identifier">push_front</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">value_type</span><span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
455</pre>
456<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
457<li class="listitem">
458 <span class="bold"><strong>Effects:</strong></span> Inserts <code class="computeroutput"><span class="identifier">x</span></code>
459 at the beginning of the sequence if no other views of the <code class="computeroutput"><span class="identifier">bimap</span></code> bans the insertion.
460 </li>
461<li class="listitem">
462 <span class="bold"><strong>Returns:</strong></span> The return value is a pair
463 <code class="computeroutput"><span class="identifier">p</span></code>. <code class="computeroutput"><span class="identifier">p</span><span class="special">.</span><span class="identifier">second</span></code> is <code class="computeroutput"><span class="keyword">true</span></code>
464 if and only if insertion took place. On successful insertion, <code class="computeroutput"><span class="identifier">p</span><span class="special">.</span><span class="identifier">first</span></code> points to the element inserted;
465 otherwise, <code class="computeroutput"><span class="identifier">p</span><span class="special">.</span><span class="identifier">first</span></code> points to an element that
466 caused the insertion to be banned. Note that more than one element
467 can be causing insertion not to be allowed.
468 </li>
469<li class="listitem">
470 <a class="link" href="list_of_reference.html#list_of_complexity_signature"><span class="bold"><strong>Complexity:</strong></span></a>
471 O(I(n)).
472 </li>
473<li class="listitem">
474 <span class="bold"><strong>Exception safety:</strong></span> Strong.
475 </li>
476</ul></div>
477<a name="reference_list_of_push_back_value"></a><pre class="programlisting"><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="keyword">bool</span><span class="special">&gt;</span> <span class="identifier">push_back</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">value_type</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
478</pre>
479<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
480<li class="listitem">
481 <span class="bold"><strong>Effects:</strong></span> Inserts <code class="computeroutput"><span class="identifier">x</span></code>
482 at the end of the sequence if no other views of the <code class="computeroutput"><span class="identifier">bimap</span></code> bans the insertion.
483 </li>
484<li class="listitem">
485 <span class="bold"><strong>Returns:</strong></span> The return value is a pair
486 <code class="computeroutput"><span class="identifier">p</span></code>. <code class="computeroutput"><span class="identifier">p</span><span class="special">.</span><span class="identifier">second</span></code> is <code class="computeroutput"><span class="keyword">true</span></code>
487 if and only if insertion took place. On successful insertion, <code class="computeroutput"><span class="identifier">p</span><span class="special">.</span><span class="identifier">first</span></code> points to the element inserted;
488 otherwise, <code class="computeroutput"><span class="identifier">p</span><span class="special">.</span><span class="identifier">first</span></code> points to an element that
489 caused the insertion to be banned. Note that more than one element
490 can be causing insertion not to be allowed.
491 </li>
492<li class="listitem">
493 <a class="link" href="list_of_reference.html#list_of_complexity_signature"><span class="bold"><strong>Complexity:</strong></span></a>
494 O(I(n)).
495 </li>
496<li class="listitem">
497 <span class="bold"><strong>Exception safety:</strong></span> Strong.
498 </li>
499</ul></div>
500<a name="reference_list_of_insert_iterator_value"></a><pre class="programlisting"><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="keyword">bool</span><span class="special">&gt;</span> <span class="identifier">insert</span><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
501</pre>
502<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
503<li class="listitem">
504 <span class="bold"><strong>Requires: </strong></span> <code class="computeroutput"><span class="identifier">position</span></code>
505 is a valid <code class="computeroutput"><span class="identifier">iterator</span></code>
506 of the view.
507 </li>
508<li class="listitem">
509 <span class="bold"><strong>Effects:</strong></span> Inserts <code class="computeroutput"><span class="identifier">x</span></code>
510 before position if insertion is allowed by all other views of the
511 <code class="computeroutput"><span class="identifier">bimap</span></code>.
512 </li>
513<li class="listitem">
514 <span class="bold"><strong>Returns:</strong></span> The return value is a pair
515 <code class="computeroutput"><span class="identifier">p</span></code>. <code class="computeroutput"><span class="identifier">p</span><span class="special">.</span><span class="identifier">second</span></code> is <code class="computeroutput"><span class="keyword">true</span></code>
516 if and only if insertion took place. On successful insertion, <code class="computeroutput"><span class="identifier">p</span><span class="special">.</span><span class="identifier">first</span></code> points to the element inserted;
517 otherwise, <code class="computeroutput"><span class="identifier">p</span><span class="special">.</span><span class="identifier">first</span></code> points to an element that
518 caused the insertion to be banned. Note that more than one element
519 can be causing insertion not to be allowed.
520 </li>
521<li class="listitem">
522 <a class="link" href="list_of_reference.html#list_of_complexity_signature"><span class="bold"><strong>Complexity:</strong></span></a>
523 O(I(n)).
524 </li>
525<li class="listitem">
526 <span class="bold"><strong>Exception safety:</strong></span> Strong.
527 </li>
528</ul></div>
529<a name="reference_list_of_insert_iterator_size_value"></a><pre class="programlisting"><span class="keyword">void</span> <span class="identifier">insert</span><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="identifier">size_type</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
530</pre>
531<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
532<li class="listitem">
533 <span class="bold"><strong>Requires: </strong></span> <code class="computeroutput"><span class="identifier">position</span></code>
534 is a valid <code class="computeroutput"><span class="identifier">iterator</span></code>
535 of the view.
536 </li>
537<li class="listitem">
538 <span class="bold"><strong>Effects: </strong></span> <code class="computeroutput"><span class="keyword">for</span><span class="special">(</span><span class="identifier">size_type</span>
539 <span class="identifier">i</span> <span class="special">=</span>
540 <span class="number">0</span><span class="special">;</span>
541 <span class="identifier">i</span> <span class="special">&lt;</span>
542 <span class="identifier">n</span><span class="special">;</span>
543 <span class="special">++</span><span class="identifier">i</span><span class="special">)</span> <span class="identifier">insert</span><span class="special">(</span><span class="identifier">position</span><span class="special">,</span> <span class="identifier">x</span><span class="special">);</span></code>
544 </li>
545</ul></div>
546<a name="reference_list_of_insert_iterator_iterator_iterator"></a><pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">InputIterator</span><span class="special">&gt;</span>
547<span class="keyword">void</span> <span class="identifier">insert</span><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</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>
548</pre>
549<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
550<li class="listitem">
551 <span class="bold"><strong>Requires: </strong></span> <code class="computeroutput"><span class="identifier">position</span></code>
552 is a valid <code class="computeroutput"><span class="identifier">iterator</span></code>
553 of the view. <code class="computeroutput"><span class="identifier">InputIterator</span></code>
554 is a model of <a href="http://www.sgi.com/tech/stl/InputIterator.html" target="_top">Input
555 Iterator</a> over elements of type <code class="computeroutput"><span class="identifier">value_type</span></code>.
556 <code class="computeroutput"><span class="identifier">first</span></code> and <code class="computeroutput"><span class="identifier">last</span></code> are not iterators into any
557 view of the <code class="computeroutput"><span class="identifier">bimap</span></code>
558 to which this view belongs. <code class="computeroutput"><span class="identifier">last</span></code>
559 is reachable from <code class="computeroutput"><span class="identifier">first</span></code>.
560 </li>
561<li class="listitem">
562 <span class="bold"><strong>Effects: </strong></span> <code class="computeroutput"><span class="keyword">while</span><span class="special">(</span><span class="identifier">first</span>
563 <span class="special">!=</span> <span class="identifier">last</span><span class="special">)</span> <span class="identifier">insert</span><span class="special">(</span><span class="identifier">position</span><span class="special">,</span> <span class="special">*</span><span class="identifier">first</span><span class="special">++);</span></code>
564 </li>
565<li class="listitem">
566 <a class="link" href="list_of_reference.html#list_of_complexity_signature"><span class="bold"><strong>Complexity:</strong></span></a>
567 O(m*I(n+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>.
568 </li>
569<li class="listitem">
570 <span class="bold"><strong>Exception safety:</strong></span> Basic.
571 </li>
572</ul></div>
573<a name="reference_list_of_erase_iterator"></a><pre class="programlisting"><span class="identifier">iterator</span> <span class="identifier">erase</span><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">);</span>
574</pre>
575<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
576<li class="listitem">
577 <span class="bold"><strong>Requires: </strong></span> <code class="computeroutput"><span class="identifier">position</span></code>
578 is a valid dereferenceable <code class="computeroutput"><span class="identifier">iterator</span></code>
579 of the view.
580 </li>
581<li class="listitem">
582 <span class="bold"><strong>Effects:</strong></span> Deletes the element pointed
583 to by <code class="computeroutput"><span class="identifier">position</span></code>.
584 </li>
585<li class="listitem">
586 <span class="bold"><strong>Returns:</strong></span> An iterator pointing to
587 the element immediately following the one that was deleted, or <code class="computeroutput"><span class="identifier">end</span><span class="special">()</span></code>
588 if no such element exists.
589 </li>
590<li class="listitem">
591 <a class="link" href="list_of_reference.html#list_of_complexity_signature"><span class="bold"><strong>Complexity:</strong></span></a>
592 O(D(n)).
593 </li>
594<li class="listitem">
595 <span class="bold"><strong>Exception safety:</strong></span> nothrow.
596 </li>
597</ul></div>
598<a name="reference_list_of_erase_iterator_iterator"></a><pre class="programlisting"><span class="identifier">iterator</span> <span class="identifier">erase</span><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">iterator</span> <span class="identifier">last</span><span class="special">);</span>
599</pre>
600<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
601<li class="listitem">
602 <span class="bold"><strong>Requires: </strong></span> <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>
603 is a valid range of the view.
604 </li>
605<li class="listitem">
606 <span class="bold"><strong>Effects:</strong></span> Deletes the elements in
607 <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>.
608 </li>
609<li class="listitem">
610 <span class="bold"><strong>Returns: </strong></span> <code class="computeroutput"><span class="identifier">last</span></code>.
611 </li>
612<li class="listitem">
613 <a class="link" href="list_of_reference.html#list_of_complexity_signature"><span class="bold"><strong>Complexity:</strong></span></a>
614 O(m*D(n)), 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>.
615 </li>
616<li class="listitem">
617 <span class="bold"><strong>Exception safety:</strong></span> nothrow.
618 </li>
619</ul></div>
620<a name="reference_list_of_replace_iterator_value"></a><pre class="programlisting"><span class="keyword">bool</span> <span class="identifier">replace</span><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span><span class="keyword">const</span> <span class="identifier">value_type</span><span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
621</pre>
622<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
623<li class="listitem">
624 <span class="bold"><strong>Requires: </strong></span> <code class="computeroutput"><span class="identifier">position</span></code>
625 is a valid dereferenceable iterator of the view.
626 </li>
627<li class="listitem">
628 <span class="bold"><strong>Effects:</strong></span> Assigns the value <code class="computeroutput"><span class="identifier">x</span></code> to the element pointed to by
629 <code class="computeroutput"><span class="identifier">position</span></code> into the
630 <code class="computeroutput"><span class="identifier">bimap</span></code> to which the
631 view belongs if replacing is allowed by all other views of the <code class="computeroutput"><span class="identifier">bimap</span></code>.
632 </li>
633<li class="listitem">
634 <span class="bold"><strong>Postconditions:</strong></span> Validity of <code class="computeroutput"><span class="identifier">position</span></code> is preserved in all cases.
635 </li>
636<li class="listitem">
637 <span class="bold"><strong>Returns: </strong></span> <code class="computeroutput"><span class="keyword">true</span></code>
638 if the replacement took place, <code class="computeroutput"><span class="keyword">false</span></code>
639 otherwise.
640 </li>
641<li class="listitem">
642 <a class="link" href="list_of_reference.html#list_of_complexity_signature"><span class="bold"><strong>Complexity:</strong></span></a>
643 O(R(n)).
644 </li>
645<li class="listitem">
646 <span class="bold"><strong>Exception safety:</strong></span> Strong. If an
647 exception is thrown by some user-provided operation the <code class="computeroutput"><span class="identifier">bimap</span></code> to which the view belongs
648 remains in its original state.
649 </li>
650</ul></div>
651<a name="reference_list_of_replace_key_iterator_key"></a><pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">CompatibleKey</span> <span class="special">&gt;</span>
652<span class="keyword">bool</span> <span class="identifier">replace_key</span><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">CompatibleKey</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
653</pre>
654<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
655<li class="listitem">
656 <span class="bold"><strong>Requires: </strong></span> <code class="computeroutput"><span class="identifier">position</span></code>
657 is a valid dereferenceable iterator of the set view. <code class="computeroutput"><span class="identifier">CompatibleKey</span></code> can be assigned to
658 <code class="computeroutput"><span class="identifier">key_type</span></code>.
659 </li>
660<li class="listitem">
661 <span class="bold"><strong>Effects:</strong></span> Assigns the value <code class="computeroutput"><span class="identifier">x</span></code> to <code class="computeroutput"><span class="identifier">e</span><span class="special">.</span><span class="identifier">first</span></code>,
662 where <code class="computeroutput"><span class="identifier">e</span></code> is the element
663 pointed to by <code class="computeroutput"><span class="identifier">position</span></code>
664 into the <code class="computeroutput"><span class="identifier">bimap</span></code> to
665 which the set view belongs if replacing is allowed by all other views
666 of the <code class="computeroutput"><span class="identifier">bimap</span></code>.
667 </li>
668<li class="listitem">
669 <span class="bold"><strong>Postconditions:</strong></span> Validity of position
670 is preserved in all cases.
671 </li>
672<li class="listitem">
673 <span class="bold"><strong>Returns: </strong></span> <code class="computeroutput"><span class="keyword">true</span></code>
674 if the replacement took place, <code class="computeroutput"><span class="keyword">false</span></code>
675 otherwise.
676 </li>
677<li class="listitem">
678 <a class="link" href="list_of_reference.html#list_of_complexity_signature"><span class="bold"><strong>Complexity:</strong></span></a>
679 O(R(n)).
680 </li>
681<li class="listitem">
682 <span class="bold"><strong>Exception safety:</strong></span> Strong. If an
683 exception is thrown by some user-provided operation, the <code class="computeroutput"><span class="identifier">bimap</span></code> to which the set view belongs
684 remains in its original state.
685 </li>
686</ul></div>
687<a name="reference_list_of_replace_data_iterator_data"></a><pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">CompatibleData</span> <span class="special">&gt;</span>
688<span class="keyword">bool</span> <span class="identifier">replace_data</span><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">CompatibleData</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
689</pre>
690<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
691<li class="listitem">
692 <span class="bold"><strong>Requires: </strong></span> <code class="computeroutput"><span class="identifier">position</span></code>
693 is a valid dereferenceable iterator of the set view. <code class="computeroutput"><span class="identifier">CompatibleKey</span></code> can be assigned to
694 <code class="computeroutput"><span class="identifier">mapped_type</span></code>.
695 </li>
696<li class="listitem">
697 <span class="bold"><strong>Effects:</strong></span> Assigns the value <code class="computeroutput"><span class="identifier">x</span></code> to <code class="computeroutput"><span class="identifier">e</span><span class="special">.</span><span class="identifier">second</span></code>,
698 where <code class="computeroutput"><span class="identifier">e</span></code> is the element
699 pointed to by <code class="computeroutput"><span class="identifier">position</span></code>
700 into the <code class="computeroutput"><span class="identifier">bimap</span></code> to
701 which the set view belongs if replacing is allowed by all other views
702 of the <code class="computeroutput"><span class="identifier">bimap</span></code>.
703 </li>
704<li class="listitem">
705 <span class="bold"><strong>Postconditions:</strong></span> Validity of position
706 is preserved in all cases.
707 </li>
708<li class="listitem">
709 <span class="bold"><strong>Returns: </strong></span> <code class="computeroutput"><span class="keyword">true</span></code>
710 if the replacement took place, <code class="computeroutput"><span class="keyword">false</span></code>
711 otherwise.
712 </li>
713<li class="listitem">
714 <a class="link" href="list_of_reference.html#list_of_complexity_signature"><span class="bold"><strong>Complexity:</strong></span></a>
715 O(R(n)).
716 </li>
717<li class="listitem">
718 <span class="bold"><strong>Exception safety:</strong></span> Strong. If an
719 exception is thrown by some user-provided operation, the <code class="computeroutput"><span class="identifier">bimap</span></code> to which the set view belongs
720 remains in its original state.
721 </li>
722</ul></div>
723<a name="reference_list_of_modify_key_iterator_modifier"></a><pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">KeyModifier</span> <span class="special">&gt;</span>
724<span class="keyword">bool</span> <span class="identifier">modify_key</span><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="identifier">KeyModifier</span> <span class="identifier">mod</span><span class="special">);</span>
725</pre>
726<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
727<li class="listitem">
728 <span class="bold"><strong>Requires: </strong></span> <code class="computeroutput"><span class="identifier">KeyModifier</span></code>
729 is a model of <a href="http://www.sgi.com/tech/stl/UnaryFunction.html" target="_top">Unary
730 Function</a> accepting arguments of type: <code class="computeroutput"><span class="identifier">key_type</span><span class="special">&amp;</span></code>; <code class="computeroutput"><span class="identifier">position</span></code>
731 is a valid dereferenceable iterator of the view.
732 </li>
733<li class="listitem">
734 <span class="bold"><strong>Effects:</strong></span> Calls <code class="computeroutput"><span class="identifier">mod</span><span class="special">(</span><span class="identifier">e</span><span class="special">.</span><span class="identifier">first</span><span class="special">)</span></code> where e is the element pointed to
735 by position and rearranges <code class="computeroutput"><span class="special">*</span><span class="identifier">position</span></code> into all the views of
736 the <code class="computeroutput"><span class="identifier">bimap</span></code>. If the
737 rearrangement fails, the element is erased. It is successful if the
738 rearrangement is allowed by all other views of the <code class="computeroutput"><span class="identifier">bimap</span></code>.
739 </li>
740<li class="listitem">
741 <span class="bold"><strong>Postconditions:</strong></span> Validity of <code class="computeroutput"><span class="identifier">position</span></code> is preserved if the operation
742 succeeds.
743 </li>
744<li class="listitem">
745 <span class="bold"><strong>Returns: </strong></span> <code class="computeroutput"><span class="keyword">true</span></code>
746 if the operation succeeded, <code class="computeroutput"><span class="keyword">false</span></code>
747 otherwise.
748 </li>
749<li class="listitem">
750 <a class="link" href="list_of_reference.html#list_of_complexity_signature"><span class="bold"><strong>Complexity:</strong></span></a>
751 O(M(n)).
752 </li>
753<li class="listitem">
754 <span class="bold"><strong>Exception safety:</strong></span> Basic. If an exception
755 is thrown by some user-provided operation (except possibly mod),
756 then the element pointed to by position is erased.
757 </li>
758<li class="listitem">
759 <span class="bold"><strong>Note:</strong></span> Only provided for map views.
760 </li>
761</ul></div>
762<a name="reference_list_of_modify_data_iterator_modifier"></a><pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">DataModifier</span> <span class="special">&gt;</span>
763<span class="keyword">bool</span> <span class="identifier">modify_data</span><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="identifier">DataModifier</span> <span class="identifier">mod</span><span class="special">);</span>
764</pre>
765<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
766<li class="listitem">
767 <span class="bold"><strong>Requires: </strong></span> <code class="computeroutput"><span class="identifier">DataModifier</span></code>
768 is a model of <a href="http://www.sgi.com/tech/stl/UnaryFunction.html" target="_top">Unary
769 Function</a> accepting arguments of type: <code class="computeroutput"><span class="identifier">mapped_type</span><span class="special">&amp;</span></code>; <code class="computeroutput"><span class="identifier">position</span></code>
770 is a valid dereferenceable iterator of the view.
771 </li>
772<li class="listitem">
773 <span class="bold"><strong>Effects:</strong></span> Calls <code class="computeroutput"><span class="identifier">mod</span><span class="special">(</span><span class="identifier">e</span><span class="special">.</span><span class="identifier">second</span><span class="special">)</span></code> where e is the element pointed to
774 by position and rearranges <code class="computeroutput"><span class="special">*</span><span class="identifier">position</span></code> into all the views of
775 the <code class="computeroutput"><span class="identifier">bimap</span></code>. If the
776 rearrangement fails, the element is erased. It is successful if the
777 rearrangement is allowed by all other views of the <code class="computeroutput"><span class="identifier">bimap</span></code>.
778 </li>
779<li class="listitem">
780 <span class="bold"><strong>Postconditions:</strong></span> Validity of <code class="computeroutput"><span class="identifier">position</span></code> is preserved if the operation
781 succeeds.
782 </li>
783<li class="listitem">
784 <span class="bold"><strong>Returns: </strong></span> <code class="computeroutput"><span class="keyword">true</span></code>
785 if the operation succeeded, <code class="computeroutput"><span class="keyword">false</span></code>
786 otherwise.
787 </li>
788<li class="listitem">
789 <a class="link" href="list_of_reference.html#list_of_complexity_signature"><span class="bold"><strong>Complexity:</strong></span></a>
790 O(M(n)).
791 </li>
792<li class="listitem">
793 <span class="bold"><strong>Exception safety:</strong></span> Basic. If an exception
794 is thrown by some user-provided operation (except possibly mod),
795 then the element pointed to by position is erased.
796 </li>
797<li class="listitem">
798 <span class="bold"><strong>Note:</strong></span> Only provided for map views.
799 </li>
800</ul></div>
801</div>
802<div class="section boost_bimap_reference_list_of_reference_list_of_views_list_operations">
803<div class="titlepage"><div><div><h5 class="title">
804<a name="boost_bimap.reference.list_of_reference.list_of_views.list_operations"></a><a class="link" href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.list_operations" title="List operations">List
805 operations</a>
806</h5></div></div></div>
807<p>
808 <code class="computeroutput"><span class="identifier">list_of</span></code> views provide
809 the full set of list operations found in <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span></code>;
810 the semantics of these member functions, however, differ from that of
811 <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span></code> in some cases as insertions might
812 not succeed due to banning by other views. Similarly, the complexity
813 of the operations may depend on the other views belonging to the same
814 <code class="computeroutput"><span class="identifier">bimap</span></code>.
815 </p>
816<a name="reference_list_of_splice_iterator_this"></a><pre class="programlisting"><span class="keyword">void</span> <span class="identifier">splice</span><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
817</pre>
818<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
819<li class="listitem">
820 <span class="bold"><strong>Requires: </strong></span> <code class="computeroutput"><span class="identifier">position</span></code>
821 is a valid iterator of the view. <code class="computeroutput"><span class="special">&amp;</span><span class="identifier">x</span><span class="special">!=</span><span class="keyword">this</span></code>.
822 </li>
823<li class="listitem">
824 <span class="bold"><strong>Effects:</strong></span> Inserts the contents of
825 <code class="computeroutput"><span class="identifier">x</span></code> before position,
826 in the same order as they were in <code class="computeroutput"><span class="identifier">x</span></code>.
827 Those elements successfully inserted are erased from <code class="computeroutput"><span class="identifier">x</span></code>.
828 </li>
829<li class="listitem">
830 <a class="link" href="list_of_reference.html#list_of_complexity_signature"><span class="bold"><strong>Complexity:</strong></span></a>
831 O(<code class="computeroutput"><span class="identifier">x</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span></code>*I(n+<code class="computeroutput"><span class="identifier">x</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span></code>)
832 + <code class="computeroutput"><span class="identifier">x</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span></code>*D(<code class="computeroutput"><span class="identifier">x</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span></code>)).
833 </li>
834<li class="listitem">
835 <span class="bold"><strong>Exception safety:</strong></span> Basic.
836 </li>
837</ul></div>
838<a name="reference_list_of_splice_iterator_this_iterator"></a><pre class="programlisting"><span class="keyword">void</span> <span class="identifier">splice</span><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">,</span><span class="identifier">iterator</span> <span class="identifier">i</span><span class="special">);</span>
839</pre>
840<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
841<li class="listitem">
842 <span class="bold"><strong>Requires: </strong></span> <code class="computeroutput"><span class="identifier">position</span></code>
843 is a valid iterator of the view. <code class="computeroutput"><span class="identifier">i</span></code>
844 is a valid dereferenceable iterator <code class="computeroutput"><span class="identifier">x</span></code>.
845 </li>
846<li class="listitem">
847 <span class="bold"><strong>Effects:</strong></span> Inserts the element pointed
848 to by <code class="computeroutput"><span class="identifier">i</span></code> before position:
849 if insertion is successful, the element is erased from <code class="computeroutput"><span class="identifier">x</span></code>. In the special case <code class="computeroutput"><span class="special">&amp;</span><span class="identifier">x</span><span class="special">==</span><span class="keyword">this</span></code>,
850 no copy or deletion is performed, and the operation is always successful.
851 If <code class="computeroutput"><span class="identifier">position</span><span class="special">==</span><span class="identifier">i</span></code>, no operation is performed.
852 </li>
853<li class="listitem">
854 <span class="bold"><strong>Postconditions:</strong></span> If <code class="computeroutput"><span class="special">&amp;</span><span class="identifier">x</span><span class="special">==</span><span class="keyword">this</span></code>,
855 no iterator or reference is invalidated.
856 </li>
857<li class="listitem">
858 <a class="link" href="list_of_reference.html#list_of_complexity_signature"><span class="bold"><strong>Complexity:</strong></span></a>
859 If <code class="computeroutput"><span class="special">&amp;</span><span class="identifier">x</span><span class="special">==</span><span class="keyword">this</span></code>,
860 constant; otherwise O(I(n) + D(n)).
861 </li>
862<li class="listitem">
863 <span class="bold"><strong>Exception safety:</strong></span> If <code class="computeroutput"><span class="special">&amp;</span><span class="identifier">x</span><span class="special">==</span><span class="keyword">this</span></code>,
864 nothrow; otherwise, strong.
865 </li>
866</ul></div>
867<a name="reference_list_of_splice_iterator_this_iterator_iterator"></a><pre class="programlisting"><span class="keyword">void</span> <span class="identifier">splice</span><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">iterator</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">iterator</span> <span class="identifier">last</span><span class="special">);</span>
868</pre>
869<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
870<li class="listitem">
871 <span class="bold"><strong>Requires: </strong></span> <code class="computeroutput"><span class="identifier">position</span></code>
872 is a valid iterator of the view. <code class="computeroutput"><span class="identifier">first</span></code>
873 and <code class="computeroutput"><span class="identifier">last</span></code> are valid
874 iterators of <code class="computeroutput"><span class="identifier">x</span></code>. last
875 is reachable from <code class="computeroutput"><span class="identifier">first</span></code>.
876 position is not 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>.
877 </li>
878<li class="listitem">
879 <span class="bold"><strong>Effects:</strong></span> For each element in the
880 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 is tried before position;
881 if the operation is successful, the element is erased from x. In
882 the special case <code class="computeroutput"><span class="special">&amp;</span><span class="identifier">x</span><span class="special">==</span><span class="keyword">this</span></code>, no copy or deletion is performed,
883 and insertions are always successful.
884 </li>
885<li class="listitem">
886 <span class="bold"><strong>Postconditions:</strong></span> If <code class="computeroutput"><span class="special">&amp;</span><span class="identifier">x</span><span class="special">==</span><span class="keyword">this</span></code>,
887 no iterator or reference is invalidated.
888 </li>
889<li class="listitem">
890 <a class="link" href="list_of_reference.html#list_of_complexity_signature"><span class="bold"><strong>Complexity:</strong></span></a>
891 If <code class="computeroutput"><span class="special">&amp;</span><span class="identifier">x</span><span class="special">==</span><span class="keyword">this</span></code>,
892 constant; otherwise O(m*I(n+m) + m*D(x.size())) where m is the number
893 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>.
894 </li>
895<li class="listitem">
896 <span class="bold"><strong>Exception safety:</strong></span> If <code class="computeroutput"><span class="special">&amp;</span><span class="identifier">x</span><span class="special">==</span><span class="keyword">this</span></code>,
897 nothrow; otherwise, basic.
898 </li>
899</ul></div>
900<a name="reference_list_of_remove_value"></a><pre class="programlisting"><span class="keyword">void</span> <span class="identifier">remove</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">value_type</span> <span class="special">&amp;</span> <span class="identifier">value</span><span class="special">);</span>
901</pre>
902<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
903<li class="listitem">
904 <span class="bold"><strong>Effects:</strong></span> Erases all elements of
905 the view which compare equal to <code class="computeroutput"><span class="identifier">value</span></code>.
906 </li>
907<li class="listitem">
908 <a class="link" href="list_of_reference.html#list_of_complexity_signature"><span class="bold"><strong>Complexity:</strong></span></a>
909 O(n + m*D(n)), where m is the number of elements erased.
910 </li>
911<li class="listitem">
912 <span class="bold"><strong>Exception safety:</strong></span> Basic.
913 </li>
914</ul></div>
915<a name="reference_list_of_remove_if_predicate"></a><pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">Predicate</span> <span class="special">&gt;</span>
916<span class="keyword">void</span> <span class="identifier">remove_if</span><span class="special">(</span><span class="identifier">Predicate</span> <span class="identifier">pred</span><span class="special">);</span>
917</pre>
918<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
919<li class="listitem">
920 <span class="bold"><strong>Effects:</strong></span> Erases all elements <code class="computeroutput"><span class="identifier">x</span></code> of the view for which <code class="computeroutput"><span class="identifier">pred</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span></code>
921 holds.
922 </li>
923<li class="listitem">
924 <a class="link" href="list_of_reference.html#list_of_complexity_signature"><span class="bold"><strong>Complexity:</strong></span></a>
925 O(n + m*D(n)), where m is the number of elements erased.
926 </li>
927<li class="listitem">
928 <span class="bold"><strong>Exception safety:</strong></span> Basic.
929 </li>
930</ul></div>
931<a name="reference_list_of_unique"></a><pre class="programlisting"><span class="keyword">void</span> <span class="identifier">unique</span><span class="special">();</span>
932</pre>
933<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
934<li class="listitem">
935 <span class="bold"><strong>Effects:</strong></span> Eliminates all but the
936 first element from every consecutive group of equal elements referred
937 to by the iterator <code class="computeroutput"><span class="identifier">i</span></code>
938 in the range <code class="computeroutput"><span class="special">[</span><span class="identifier">first</span><span class="special">+</span><span class="number">1</span><span class="special">,</span><span class="identifier">last</span><span class="special">)</span></code> for which <code class="computeroutput"><span class="special">*</span><span class="identifier">i</span><span class="special">==*(</span><span class="identifier">i</span><span class="special">-</span><span class="number">1</span><span class="special">)</span></code>.
939 </li>
940<li class="listitem">
941 <a class="link" href="list_of_reference.html#list_of_complexity_signature"><span class="bold"><strong>Complexity:</strong></span></a>
942 O(n + m*D(n)), where m is the number of elements erased.
943 </li>
944<li class="listitem">
945 <span class="bold"><strong>Exception safety:</strong></span> Basic.
946 </li>
947</ul></div>
948<a name="reference_list_of_unique_predicate"></a><pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">BinaryPredicate</span> <span class="special">&gt;</span>
949<span class="keyword">void</span> <span class="identifier">unique</span><span class="special">(</span><span class="identifier">BinaryPredicate</span> <span class="identifier">binary_pred</span><span class="special">);</span>
950</pre>
951<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
952<li class="listitem">
953 <span class="bold"><strong>Effects:</strong></span> Eliminates all but the
954 first element from every consecutive group of elements referred to
955 by the iterator i in the range [first+1,last) for which <code class="computeroutput"><span class="identifier">binary_pred</span><span class="special">(*</span><span class="identifier">i</span><span class="special">,*(</span><span class="identifier">i</span><span class="special">-</span><span class="number">1</span><span class="special">))</span></code>
956 holds.
957 </li>
958<li class="listitem">
959 <a class="link" href="list_of_reference.html#list_of_complexity_signature"><span class="bold"><strong>Complexity:</strong></span></a>
960 O(n + m*D(n)), where m is the number of elements erased.
961 </li>
962<li class="listitem">
963 <span class="bold"><strong>Exception safety:</strong></span> Basic.
964 </li>
965</ul></div>
966<a name="reference_list_of_merge_this"></a><pre class="programlisting"><span class="keyword">void</span> <span class="identifier">merge</span><span class="special">(</span><span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
967</pre>
968<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
969<li class="listitem">
970 <span class="bold"><strong>Requires: </strong></span> <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">less</span><span class="special">&lt;</span><span class="identifier">value_type</span><span class="special">&gt;</span></code> is a <a href="http://www.sgi.com/tech/stl/StrictWeakOrdering.html" target="_top">Strict
971 Weak Ordering</a> over <code class="computeroutput"><span class="identifier">value_type</span></code>.
972 Both the view and <code class="computeroutput"><span class="identifier">x</span></code>
973 are sorted according to <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">less</span><span class="special">&lt;</span><span class="identifier">value_type</span><span class="special">&gt;</span></code>.
974 </li>
975<li class="listitem">
976 <span class="bold"><strong>Effects:</strong></span> Attempts to insert every
977 element of <code class="computeroutput"><span class="identifier">x</span></code> into
978 the corresponding position of the view (according to the order).
979 Elements successfully inserted are erased from <code class="computeroutput"><span class="identifier">x</span></code>.
980 The resulting sequence is stable, i.e. equivalent elements of either
981 container preserve their relative position. In the special case
982 <code class="computeroutput"><span class="special">&amp;</span><span class="identifier">x</span><span class="special">==</span><span class="keyword">this</span></code>,
983 no operation is performed.
984 </li>
985<li class="listitem">
986 <span class="bold"><strong>Postconditions:</strong></span> Elements in the
987 view and remaining elements in <code class="computeroutput"><span class="identifier">x</span></code>
988 are sorted. Validity of iterators to the view and of non-erased elements
989 of <code class="computeroutput"><span class="identifier">x</span></code> references is
990 preserved.
991 </li>
992<li class="listitem">
993 <a class="link" href="list_of_reference.html#list_of_complexity_signature"><span class="bold"><strong>Complexity:</strong></span></a>
994 If <code class="computeroutput"><span class="special">&amp;</span><span class="identifier">x</span><span class="special">==</span><span class="keyword">this</span></code>,
995 constant; otherwise O(n + <code class="computeroutput"><span class="identifier">x</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span></code>*I(n+<code class="computeroutput"><span class="identifier">x</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span></code>) + <code class="computeroutput"><span class="identifier">x</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span></code>*D(<code class="computeroutput"><span class="identifier">x</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span></code>)).
996 </li>
997<li class="listitem">
998 <span class="bold"><strong>Exception safety:</strong></span> If <code class="computeroutput"><span class="special">&amp;</span><span class="identifier">x</span><span class="special">==</span><span class="keyword">this</span></code>,
999 nothrow; otherwise, basic.
1000 </li>
1001</ul></div>
1002<a name="reference_list_of_merge_this_compare"></a><pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">Compare</span> <span class="special">&gt;</span>
1003<span class="keyword">void</span> <span class="identifier">merge</span><span class="special">(</span><span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">Compare</span> <span class="identifier">comp</span><span class="special">);</span>
1004</pre>
1005<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
1006<li class="listitem">
1007 <span class="bold"><strong>Requires:</strong></span> Compare is a <a href="http://www.sgi.com/tech/stl/StrictWeakOrdering.html" target="_top">Strict
1008 Weak Ordering</a> over <code class="computeroutput"><span class="identifier">value_type</span></code>.
1009 Both the view and <code class="computeroutput"><span class="identifier">x</span></code>
1010 are sorted according to <code class="computeroutput"><span class="identifier">comp</span></code>.
1011 </li>
1012<li class="listitem">
1013 <span class="bold"><strong>Effects:</strong></span> Attempts to insert every
1014 element of <code class="computeroutput"><span class="identifier">x</span></code> into
1015 the corresponding position of the view (according to <code class="computeroutput"><span class="identifier">comp</span></code>). Elements successfully inserted
1016 are erased from <code class="computeroutput"><span class="identifier">x</span></code>.
1017 The resulting sequence is stable, i.e. equivalent elements of either
1018 container preserve their relative position. In the special case
1019 <code class="computeroutput"><span class="special">&amp;</span><span class="identifier">x</span><span class="special">==</span><span class="keyword">this</span></code>,
1020 no operation is performed.
1021 </li>
1022<li class="listitem">
1023 <span class="bold"><strong>Postconditions:</strong></span> Elements in the
1024 view and remaining elements in <code class="computeroutput"><span class="identifier">x</span></code>
1025 are sorted according to <code class="computeroutput"><span class="identifier">comp</span></code>.
1026 Validity of iterators to the view and of non-erased elements of
1027 <code class="computeroutput"><span class="identifier">x</span></code> references is preserved.
1028 </li>
1029<li class="listitem">
1030 <a class="link" href="list_of_reference.html#list_of_complexity_signature"><span class="bold"><strong>Complexity:</strong></span></a>
1031 If <code class="computeroutput"><span class="special">&amp;</span><span class="identifier">x</span><span class="special">==</span><span class="keyword">this</span></code>,
1032 constant; otherwise O(n + <code class="computeroutput"><span class="identifier">x</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span></code>*I(n+<code class="computeroutput"><span class="identifier">x</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span></code>) + <code class="computeroutput"><span class="identifier">x</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span></code>*D(<code class="computeroutput"><span class="identifier">x</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span></code>)).
1033 </li>
1034<li class="listitem">
1035 <span class="bold"><strong>Exception safety:</strong></span> If <code class="computeroutput"><span class="special">&amp;</span><span class="identifier">x</span><span class="special">==</span><span class="keyword">this</span></code>,
1036 nothrow; otherwise, basic.
1037 </li>
1038</ul></div>
1039<a name="reference_list_of_sort"></a><pre class="programlisting"><span class="keyword">void</span> <span class="identifier">sort</span><span class="special">();</span>
1040</pre>
1041<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
1042<li class="listitem">
1043 <span class="bold"><strong>Requires: </strong></span> <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">less</span><span class="special">&lt;</span><span class="identifier">value_type</span><span class="special">&gt;</span></code> is a <a href="http://www.sgi.com/tech/stl/StrictWeakOrdering.html" target="_top">Strict
1044 Weak Ordering</a> over value_type.
1045 </li>
1046<li class="listitem">
1047 <span class="bold"><strong>Effects:</strong></span> Sorts the view according
1048 to <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">less</span><span class="special">&lt;</span><span class="identifier">value_type</span><span class="special">&gt;</span></code>.
1049 The sorting is stable, i.e. equivalent elements preserve their relative
1050 position.
1051 </li>
1052<li class="listitem">
1053 <span class="bold"><strong>Postconditions:</strong></span> Validity of iterators
1054 and references is preserved.
1055 </li>
1056<li class="listitem">
1057 <span class="bold"><strong>Complexity:</strong></span> O(n*log(n)).
1058 </li>
1059<li class="listitem">
1060 <span class="bold"><strong>Exception safety:</strong></span> nothrow if <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">less</span><span class="special">&lt;</span><span class="identifier">value_type</span><span class="special">&gt;</span></code>
1061 does not throw; otherwise, basic.
1062 </li>
1063</ul></div>
1064<a name="reference_list_of_sort_compare"></a><pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">Compare</span> <span class="special">&gt;</span>
1065<span class="keyword">void</span> <span class="identifier">sort</span><span class="special">(</span><span class="identifier">Compare</span> <span class="identifier">comp</span><span class="special">);</span>
1066</pre>
1067<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
1068<li class="listitem">
1069 <span class="bold"><strong>Requires:</strong></span> Compare is a <a href="http://www.sgi.com/tech/stl/StrictWeakOrdering.html" target="_top">Strict
1070 Weak Ordering</a> over value_type.
1071 </li>
1072<li class="listitem">
1073 <span class="bold"><strong>Effects:</strong></span> Sorts the view according
1074 to comp. The sorting is stable, i.e. equivalent elements preserve
1075 their relative position.
1076 </li>
1077<li class="listitem">
1078 <span class="bold"><strong>Postconditions:</strong></span> Validity of iterators
1079 and references is preserved.
1080 </li>
1081<li class="listitem">
1082 <span class="bold"><strong>Complexity:</strong></span> O(n*log(n)).
1083 </li>
1084<li class="listitem">
1085 <span class="bold"><strong>Exception safety:</strong></span> nothrow if comp
1086 does not throw; otherwise, basic.
1087 </li>
1088</ul></div>
1089<a name="reference_list_of_reverse"></a><pre class="programlisting"><span class="keyword">void</span> <span class="identifier">reverse</span><span class="special">();</span>
1090</pre>
1091<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
1092<li class="listitem">
1093 <span class="bold"><strong>Effects:</strong></span> Reverses the order of the
1094 elements in the view.
1095 </li>
1096<li class="listitem">
1097 <span class="bold"><strong>Postconditions:</strong></span> Validity of iterators
1098 and references is preserved.
1099 </li>
1100<li class="listitem">
1101 <span class="bold"><strong>Complexity:</strong></span> O(n).
1102 </li>
1103<li class="listitem">
1104 <span class="bold"><strong>Exception safety:</strong></span> nothrow.
1105 </li>
1106</ul></div>
1107</div>
1108<div class="section boost_bimap_reference_list_of_reference_list_of_views_rearrange_operations">
1109<div class="titlepage"><div><div><h5 class="title">
1110<a name="boost_bimap.reference.list_of_reference.list_of_views.rearrange_operations"></a><a class="link" href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.rearrange_operations" title="Rearrange operations">Rearrange
1111 operations</a>
1112</h5></div></div></div>
1113<p>
1114 These operations, without counterpart in <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span></code>
1115 (although splice provides partially overlapping functionality), perform
1116 individual and global repositioning of elements inside the index.
1117 </p>
1118<a name="reference_list_of_relocate_iterator_iterator"></a><pre class="programlisting"><span class="keyword">void</span> <span class="identifier">relocate</span><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="identifier">iterator</span> <span class="identifier">i</span><span class="special">);</span>
1119</pre>
1120<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
1121<li class="listitem">
1122 <span class="bold"><strong>Requires: </strong></span> <code class="computeroutput"><span class="identifier">position</span></code>
1123 is a valid iterator of the view. <code class="computeroutput"><span class="identifier">i</span></code>
1124 is a valid dereferenceable iterator of the view.
1125 </li>
1126<li class="listitem">
1127 <span class="bold"><strong>Effects:</strong></span> Inserts the element pointed
1128 to by <code class="computeroutput"><span class="identifier">i</span></code> before <code class="computeroutput"><span class="identifier">position</span></code>. If <code class="computeroutput"><span class="identifier">position</span><span class="special">==</span><span class="identifier">i</span></code>,
1129 no operation is performed.
1130 </li>
1131<li class="listitem">
1132 <span class="bold"><strong>Postconditions:</strong></span> No iterator or reference
1133 is invalidated.
1134 </li>
1135<li class="listitem">
1136 <span class="bold"><strong>Complexity:</strong></span> Constant.
1137 </li>
1138<li class="listitem">
1139 <span class="bold"><strong>Exception safety:</strong></span> nothrow.
1140 </li>
1141</ul></div>
1142<a name="reference_list_of_relocate_iterator_iterator_iterator"></a><pre class="programlisting"><span class="keyword">void</span> <span class="identifier">relocate</span><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="identifier">iterator</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">iterator</span> <span class="identifier">last</span><span class="special">);</span>
1143</pre>
1144<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
1145<li class="listitem">
1146 <span class="bold"><strong>Requires: </strong></span> <code class="computeroutput"><span class="identifier">position</span></code>
1147 is a valid iterator of the view. <code class="computeroutput"><span class="identifier">first</span></code>
1148 and <code class="computeroutput"><span class="identifier">last</span></code> are valid
1149 iterators of the view. <code class="computeroutput"><span class="identifier">last</span></code>
1150 is reachable from <code class="computeroutput"><span class="identifier">first</span></code>.
1151 <code class="computeroutput"><span class="identifier">position</span></code> is not in
1152 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>.
1153 </li>
1154<li class="listitem">
1155 <span class="bold"><strong>Effects:</strong></span> The range of elements
1156 <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> is repositioned just before <code class="computeroutput"><span class="identifier">position</span></code>.
1157 </li>
1158<li class="listitem">
1159 <span class="bold"><strong>Postconditions:</strong></span> No iterator or reference
1160 is invalidated.
1161 </li>
1162<li class="listitem">
1163 <span class="bold"><strong>Complexity:</strong></span> Constant.
1164 </li>
1165<li class="listitem">
1166 <span class="bold"><strong>Exception safety:</strong></span> nothrow.
1167 </li>
1168</ul></div>
1169</div>
1170<div class="section boost_bimap_reference_list_of_reference_list_of_views_serialization">
1171<div class="titlepage"><div><div><h5 class="title">
1172<a name="boost_bimap.reference.list_of_reference.list_of_views.serialization"></a><a class="link" href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.serialization" title="Serialization">Serialization</a>
1173</h5></div></div></div>
1174<p>
1175 Views cannot be serialized on their own, but only as part of the <code class="computeroutput"><span class="identifier">bimap</span></code> into which they are embedded.
1176 In describing the additional preconditions and guarantees associated
1177 to <code class="computeroutput"><span class="identifier">list_of</span></code> views with
1178 respect to serialization of their embedding containers, we use the concepts
1179 defined in the <code class="computeroutput"><span class="identifier">bimap</span></code>
1180 serialization section.
1181 </p>
1182<div class="sidebar">
1183<div class="titlepage"></div>
1184<p>
1185 <span class="bold"><strong>Operation:</strong></span> saving of a <code class="computeroutput"><span class="identifier">bimap</span></code> b to an output archive (XML archive)
1186 ar.
1187 </p>
1188</div>
1189<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
1190 <span class="bold"><strong>Requires:</strong></span> No additional requirements
1191 to those imposed by the container.
1192 </li></ul></div>
1193<div class="sidebar">
1194<div class="titlepage"></div>
1195<p>
1196 <span class="bold"><strong>Operation:</strong></span> loading of a <code class="computeroutput"><span class="identifier">bimap</span></code> b' from an input archive (XML
1197 archive) ar.
1198 </p>
1199</div>
1200<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
1201 <span class="bold"><strong>Requires:</strong></span> No additional requirements
1202 to those imposed by the container. <span class="bold"><strong>Postconditions:</strong></span>
1203 On successful loading, each of the elements of <code class="computeroutput"><span class="special">[</span><span class="identifier">begin</span><span class="special">(),</span>
1204 <span class="identifier">end</span><span class="special">())</span></code>
1205 is a restored copy of the corresponding element in <code class="computeroutput"><span class="special">[</span><span class="identifier">m</span><span class="special">.</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">i</span><span class="special">&gt;().</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">m</span><span class="special">.</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">i</span><span class="special">&gt;().</span><span class="identifier">end</span><span class="special">())</span></code>, where <code class="computeroutput"><span class="identifier">i</span></code>
1206 is the position of the <code class="computeroutput"><span class="identifier">list_of</span></code>
1207 view in the container.
1208 </li></ul></div>
1209<div class="sidebar">
1210<div class="titlepage"></div>
1211<p>
1212 <span class="bold"><strong>Operation:</strong></span> saving of an <code class="computeroutput"><span class="identifier">iterator</span></code> or <code class="computeroutput"><span class="identifier">const_iterator</span></code>
1213 it to an output archive (XML archive) ar.
1214 </p>
1215</div>
1216<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
1217 <span class="bold"><strong>Requires: </strong></span> <code class="computeroutput"><span class="identifier">it</span></code>
1218 is a valid iterator of the view. The associated <code class="computeroutput"><span class="identifier">bimap</span></code>
1219 has been previously saved.
1220 </li></ul></div>
1221<div class="sidebar">
1222<div class="titlepage"></div>
1223<p>
1224 <span class="bold"><strong>Operation:</strong></span> loading of an <code class="computeroutput"><span class="identifier">iterator</span></code> or <code class="computeroutput"><span class="identifier">const_iterator</span>
1225 <span class="identifier">it</span></code>' from an input archive (XML
1226 archive) ar.
1227 </p>
1228</div>
1229<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
1230<li class="listitem">
1231 <span class="bold"><strong>Postconditions:</strong></span> On successful loading,
1232 if it was dereferenceable then <code class="computeroutput"><span class="special">*</span><span class="identifier">it</span></code>' is the restored copy of <code class="computeroutput"><span class="special">*</span><span class="identifier">it</span></code>,
1233 otherwise <code class="computeroutput"><span class="identifier">it</span></code>'<code class="computeroutput">
1234 <span class="special">==</span> <span class="identifier">end</span><span class="special">()</span></code>.
1235 </li>
1236<li class="listitem">
1237 <span class="bold"><strong>Note:</strong></span> It is allowed that <code class="computeroutput"><span class="identifier">it</span></code> be a <code class="computeroutput"><span class="identifier">const_iterator</span></code>
1238 and the restored <code class="computeroutput"><span class="identifier">it</span></code>'
1239 an iterator, or viceversa.
1240 </li>
1241</ul></div>
1242</div>
1243</div>
1244</div>
1245<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
1246<td align="left"></td>
1247<td align="right"><div class="copyright-footer">Copyright &#169; 2006-2012 Matias Capeletto<p>
1248 Distributed under the Boost Software License, Version 1.0. (See accompanying
1249 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>)
1250 </p>
1251</div></td>
1252</tr></table>
1253<hr>
1254<div class="spirit-nav">
1255<a accesskey="p" href="unordered_set_of_reference.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="vector_of_reference.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
1256</div>
1257</body>
1258</html>