list_of_reference.html 121 KB

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