1<html> 2<head> 3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 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.79.1"> 7<link rel="home" href="../../index.html" title="Chapter 1. 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"> 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 class="toc"> 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"> 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"><</span> <span class="keyword">class</span> <span class="identifier">KeyType</span> <span class="special">></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"> 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 class="toc"> 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="https://www.boost.org/sgi/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="https://www.boost.org/sgi/stl/ReversibleContainer.html" target="_top">Reversible 129 Container</a>, <a href="https://www.boost.org/sgi/stl/FrontInsertionSequence.html" target="_top">Front 130 Insertion Sequence</a> and <a href="https://www.boost.org/sgi/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"><</span> <span class="emphasis"><em>-implementation defined parameter list-</em></span> <span class="special">></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">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="keyword">const</span> <span class="identifier">this_type</span> <span class="special">&</span> <span class="identifier">x</span><span class="special">);</span> 164 165 <span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">InputIterator</span> <span class="special">></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">&</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">&</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"><</span><span class="identifier">iterator</span><span class="special">,</span><span class="keyword">bool</span><span class="special">></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">&</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"><</span><span class="identifier">iterator</span><span class="special">,</span><span class="keyword">bool</span><span class="special">></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">&</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"><</span><span class="identifier">iterator</span><span class="special">,</span><span class="keyword">bool</span><span class="special">></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">&</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">&</span> <span class="identifier">x</span><span class="special">);</span> 212 213 <span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">InputIterator</span> <span class="special">></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">&</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"><</span> <span class="keyword">class</span> <span class="identifier">CompatibleKey</span> <span class="special">></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">&</span> <span class="identifier">x</span><span class="special">);</span> 230 231 <span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">CompatibleData</span> <span class="special">></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">&</span> <span class="identifier">x</span><span class="special">);</span> 233 234 <span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">KeyModifier</span> <span class="special">></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"><</span> <span class="keyword">class</span> <span class="identifier">DataModifier</span> <span class="special">></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">&</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">&</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">&</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">&</span> <span class="identifier">value</span><span class="special">);</span> 253 254 <span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">Predicate</span> <span class="special">></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"><</span> <span class="keyword">class</span> <span class="identifier">BinaryPredicate</span> <span class="special">></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">&</span> <span class="identifier">x</span><span class="special">);</span> 263 264 <span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">Compare</span> <span class="special">></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">&</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"><</span> <span class="keyword">class</span> <span class="identifier">Compare</span> <span class="special">></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">&</span> <span class="identifier">v1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">this_type</span> <span class="special">&</span> <span class="identifier">v2</span> <span class="special">);</span> 284<span class="keyword">bool</span> <span class="keyword">operator</span><span class="special"><</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">this_type</span> <span class="special">&</span> <span class="identifier">v1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">this_type</span> <span class="special">&</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">&</span> <span class="identifier">v1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">this_type</span> <span class="special">&</span> <span class="identifier">v2</span> <span class="special">);</span> 286<span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">></span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">this_type</span> <span class="special">&</span> <span class="identifier">v1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">this_type</span> <span class="special">&</span> <span class="identifier">v2</span> <span class="special">);</span> 287<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">&</span> <span class="identifier">v1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">this_type</span> <span class="special">&</span> <span class="identifier">v2</span> <span class="special">);</span> 288<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">&</span> <span class="identifier">v1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">this_type</span> <span class="special">&</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"><</span> <span class="identifier">list_of</span><span class="special"><</span><span class="identifier">Left</span><span class="special">>,</span> <span class="special">...</span> <span class="special">></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"><</span> <span class="identifier">Left</span><span class="special">,</span> <span class="special">...</span> <span class="special">></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"><</span> <span class="identifier">Left</span><span class="special">,</span> <span class="special">...</span> <span class="special">></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"><</span> <span class="identifier">Left</span><span class="special">,</span> <span class="special">...</span> <span class="special">></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"><</span> <span class="special">...</span> <span class="special">,</span> <span class="identifier">Left</span> <span class="special">></span> <span class="identifier">value_type</span><span class="special">;</span> 318</pre> 319<div class="section"> 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"> 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"> 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">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="keyword">const</span> <span class="identifier">this_type</span> <span class="special">&</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"><</span> <span class="keyword">class</span> <span class="identifier">InputIterator</span> <span class="special">></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="https://www.boost.org/sgi/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">&</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"><</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"> 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">&</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">></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"><</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"> 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"><</span><span class="identifier">iterator</span><span class="special">,</span><span class="keyword">bool</span><span class="special">></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">&</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"><</span><span class="identifier">iterator</span><span class="special">,</span><span class="keyword">bool</span><span class="special">></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">&</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"><</span><span class="identifier">iterator</span><span class="special">,</span><span class="keyword">bool</span><span class="special">></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">&</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">&</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"><</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"><</span> <span class="keyword">class</span> <span class="identifier">InputIterator</span><span class="special">></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="https://www.boost.org/sgi/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">&</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"><</span> <span class="keyword">class</span> <span class="identifier">CompatibleKey</span> <span class="special">></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">&</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"><</span> <span class="keyword">class</span> <span class="identifier">CompatibleData</span> <span class="special">></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">&</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"><</span> <span class="keyword">class</span> <span class="identifier">KeyModifier</span> <span class="special">></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="https://www.boost.org/sgi/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">&</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"><</span> <span class="keyword">class</span> <span class="identifier">DataModifier</span> <span class="special">></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="https://www.boost.org/sgi/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">&</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"> 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">&</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">&</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">&</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">&</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">&</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">&</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">&</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">&</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">&</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">&</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">&</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">&</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">&</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"><</span> <span class="keyword">class</span> <span class="identifier">Predicate</span> <span class="special">></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"><</span> <span class="keyword">class</span> <span class="identifier">BinaryPredicate</span> <span class="special">></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">&</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"><</span><span class="identifier">value_type</span><span class="special">></span></code> is a <a href="https://www.boost.org/sgi/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"><</span><span class="identifier">value_type</span><span class="special">></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">&</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">&</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">&</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"><</span> <span class="keyword">class</span> <span class="identifier">Compare</span> <span class="special">></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">&</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="https://www.boost.org/sgi/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">&</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">&</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">&</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"><</span><span class="identifier">value_type</span><span class="special">></span></code> is a <a href="https://www.boost.org/sgi/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"><</span><span class="identifier">value_type</span><span class="special">></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"><</span><span class="identifier">value_type</span><span class="special">></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"><</span> <span class="keyword">typename</span> <span class="identifier">Compare</span> <span class="special">></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="https://www.boost.org/sgi/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"> 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"> 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="blurb"> 1183<div class="titlepage"><div><div><p class="title"><b></b></p></div></div></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="blurb"> 1194<div class="titlepage"><div><div><p class="title"><b></b></p></div></div></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"><</span><span class="identifier">i</span><span class="special">>().</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"><</span><span class="identifier">i</span><span class="special">>().</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="blurb"> 1210<div class="titlepage"><div><div><p class="title"><b></b></p></div></div></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="blurb"> 1222<div class="titlepage"><div><div><p class="title"><b></b></p></div></div></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 © 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> 1259