UNPKG

boost-react-native-bundle

Version:

Boost library as in https://sourceforge.net/projects/boost/files/boost/1.57.0/

218 lines (214 loc) 102 kB
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> <title>Class template stable_vector</title> <link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> <meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> <link rel="up" href="../../boost_container_header_reference.html#header.boost.container.stable_vector_hpp" title="Header &lt;boost/container/stable_vector.hpp&gt;"> <link rel="prev" href="slist.html" title="Class template slist"> <link rel="next" href="static_vector.html" title="Class template static_vector"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <table cellpadding="2" width="100%"><tr> <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> <td align="center"><a href="../../../../index.html">Home</a></td> <td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> <td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> <td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> <td align="center"><a href="../../../../more/index.htm">More</a></td> </tr></table> <hr> <div class="spirit-nav"> <a accesskey="p" href="slist.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../boost_container_header_reference.html#header.boost.container.stable_vector_hpp"><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="static_vector.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> <div class="refentry"> <a name="boost.container.stable_vector"></a><div class="titlepage"></div> <div class="refnamediv"> <h2><span class="refentrytitle">Class template stable_vector</span></h2> <p>boost::container::stable_vector</p> </div> <h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> <div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: &lt;<a class="link" href="../../boost_container_header_reference.html#header.boost.container.stable_vector_hpp" title="Header &lt;boost/container/stable_vector.hpp&gt;">boost/container/stable_vector.hpp</a>&gt; </span><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> Allocator <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">allocator</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a> <span class="special">{</span> <span class="keyword">public</span><span class="special">:</span> <span class="comment">// types</span> <span class="keyword">typedef</span> <span class="identifier">T</span> <a name="boost.container.stable_vector.value_type"></a><span class="identifier">value_type</span><span class="special">;</span> <span class="keyword">typedef</span> <span class="special">::</span><a class="link" href="allocator_traits.html" title="Struct template allocator_traits">boost::container::allocator_traits</a><span class="special">&lt;</span> <span class="identifier">Allocator</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">pointer</span> <a name="boost.container.stable_vector.pointer"></a><span class="identifier">pointer</span><span class="special">;</span> <span class="keyword">typedef</span> <span class="special">::</span><a class="link" href="allocator_traits.html" title="Struct template allocator_traits">boost::container::allocator_traits</a><span class="special">&lt;</span> <span class="identifier">Allocator</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">const_pointer</span> <a name="boost.container.stable_vector.const_pointer"></a><span class="identifier">const_pointer</span><span class="special">;</span> <span class="keyword">typedef</span> <span class="special">::</span><a class="link" href="allocator_traits.html" title="Struct template allocator_traits">boost::container::allocator_traits</a><span class="special">&lt;</span> <span class="identifier">Allocator</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">reference</span> <a name="boost.container.stable_vector.reference"></a><span class="identifier">reference</span><span class="special">;</span> <span class="keyword">typedef</span> <span class="special">::</span><a class="link" href="allocator_traits.html" title="Struct template allocator_traits">boost::container::allocator_traits</a><span class="special">&lt;</span> <span class="identifier">Allocator</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">const_reference</span> <a name="boost.container.stable_vector.const_reference"></a><span class="identifier">const_reference</span><span class="special">;</span> <span class="keyword">typedef</span> <span class="special">::</span><a class="link" href="allocator_traits.html" title="Struct template allocator_traits">boost::container::allocator_traits</a><span class="special">&lt;</span> <span class="identifier">Allocator</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">size_type</span> <a name="boost.container.stable_vector.size_type"></a><span class="identifier">size_type</span><span class="special">;</span> <span class="keyword">typedef</span> <span class="special">::</span><a class="link" href="allocator_traits.html" title="Struct template allocator_traits">boost::container::allocator_traits</a><span class="special">&lt;</span> <span class="identifier">Allocator</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">difference_type</span> <a name="boost.container.stable_vector.difference_type"></a><span class="identifier">difference_type</span><span class="special">;</span> <span class="keyword">typedef</span> <span class="identifier">Allocator</span> <a name="boost.container.stable_vector.allocator_type"></a><span class="identifier">allocator_type</span><span class="special">;</span> <span class="keyword">typedef</span> <span class="identifier">node_allocator_type</span> <a name="boost.container.stable_vector.stored_allocator_type"></a><span class="identifier">stored_allocator_type</span><span class="special">;</span> <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <a name="boost.container.stable_vector.iterator"></a><span class="identifier">iterator</span><span class="special">;</span> <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <a name="boost.container.stable_vector.const_iterator"></a><span class="identifier">const_iterator</span><span class="special">;</span> <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <a name="boost.container.stable_vector.reverse_iterator"></a><span class="identifier">reverse_iterator</span><span class="special">;</span> <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <a name="boost.container.stable_vector.const_reverse_iterator"></a><span class="identifier">const_reverse_iterator</span><span class="special">;</span> <span class="comment">// <a class="link" href="stable_vector.html#boost.container.stable_vectorconstruct-copy-destruct">construct/copy/destruct</a></span> <a class="link" href="stable_vector.html#idp40679968-bb"><span class="identifier">stable_vector</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> <span class="keyword">explicit</span> <a class="link" href="stable_vector.html#idp40683696-bb"><span class="identifier">stable_vector</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">allocator_type</span> <span class="special">&amp;</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> <span class="keyword">explicit</span> <a class="link" href="stable_vector.html#idp40688640-bb"><span class="identifier">stable_vector</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">)</span><span class="special">;</span> <a class="link" href="stable_vector.html#idp40693440-bb"><span class="identifier">stable_vector</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">,</span> <a class="link" href="default_init_t.html" title="Struct default_init_t">default_init_t</a><span class="special">)</span><span class="special">;</span> <a class="link" href="stable_vector.html#idp40699648-bb"><span class="identifier">stable_vector</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">allocator_type</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">allocator_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> InputIterator<span class="special">&gt;</span> <a class="link" href="stable_vector.html#idp40705824-bb"><span class="identifier">stable_vector</span></a><span class="special">(</span><span class="identifier">InputIterator</span><span class="special">,</span> <span class="identifier">InputIterator</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">allocator_type</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">allocator_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> <a class="link" href="stable_vector.html#idp40713632-bb"><span class="identifier">stable_vector</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span> <a class="link" href="stable_vector.html#idp40718480-bb"><span class="identifier">stable_vector</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">initializer_list</span><span class="special">&lt;</span> <span class="identifier">value_type</span> <span class="special">&gt;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">allocator_type</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">allocator_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> <a class="link" href="stable_vector.html#idp40724656-bb"><span class="identifier">stable_vector</span></a><span class="special">(</span><a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a> <span class="special">&amp;&amp;</span><span class="special">)</span><span class="special">;</span> <a class="link" href="stable_vector.html#idp40728656-bb"><span class="identifier">stable_vector</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">allocator_type</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span> <a class="link" href="stable_vector.html#idp40734208-bb"><span class="identifier">stable_vector</span></a><span class="special">(</span><a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a> <span class="special">&amp;&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">allocator_type</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span> <a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a> <span class="special">&amp;</span> <a class="link" href="stable_vector.html#idp40742720-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span> <a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a> <span class="special">&amp;</span> <a class="link" href="stable_vector.html#idp40748416-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a> <span class="special">&amp;&amp;</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">(</span><span class="identifier">allocator_traits_type</span><span class="special">::</span><span class="identifier">propagate_on_container_move_assignment</span><span class="special">::</span><span class="identifier">value</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> <a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a> <span class="special">&amp;</span> <a class="link" href="stable_vector.html#idp40754448-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">initializer_list</span><span class="special">&lt;</span> <span class="identifier">value_type</span> <span class="special">&gt;</span><span class="special">)</span><span class="special">;</span> <a class="link" href="stable_vector.html#idp40738960-bb"><span class="special">~</span><span class="identifier">stable_vector</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> <span class="comment">// <a class="link" href="stable_vector.html#idp40432016-bb">public member functions</a></span> <span class="keyword">void</span> <a class="link" href="stable_vector.html#idp40432576-bb"><span class="identifier">assign</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> InputIterator<span class="special">&gt;</span> <span class="keyword">void</span> <a class="link" href="stable_vector.html#idp40437536-bb"><span class="identifier">assign</span></a><span class="special">(</span><span class="identifier">InputIterator</span><span class="special">,</span> <span class="identifier">InputIterator</span><span class="special">)</span><span class="special">;</span> <span class="keyword">void</span> <a class="link" href="stable_vector.html#idp40443376-bb"><span class="identifier">assign</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">initializer_list</span><span class="special">&lt;</span> <span class="identifier">value_type</span> <span class="special">&gt;</span><span class="special">)</span><span class="special">;</span> <span class="identifier">allocator_type</span> <a class="link" href="stable_vector.html#idp40446880-bb"><span class="identifier">get_allocator</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> <span class="keyword">const</span> <span class="identifier">stored_allocator_type</span> <span class="special">&amp;</span> <a class="link" href="stable_vector.html#idp40450736-bb"><span class="identifier">get_stored_allocator</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> <span class="identifier">stored_allocator_type</span> <span class="special">&amp;</span> <a class="link" href="stable_vector.html#idp40455440-bb"><span class="identifier">get_stored_allocator</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> <span class="identifier">iterator</span> <a class="link" href="stable_vector.html#idp40460128-bb"><span class="identifier">begin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> <span class="identifier">const_iterator</span> <a class="link" href="stable_vector.html#idp40464704-bb"><span class="identifier">begin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> <span class="identifier">iterator</span> <a class="link" href="stable_vector.html#idp40469280-bb"><span class="identifier">end</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> <span class="identifier">const_iterator</span> <a class="link" href="stable_vector.html#idp40473840-bb"><span class="identifier">end</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> <span class="identifier">reverse_iterator</span> <a class="link" href="stable_vector.html#idp40478400-bb"><span class="identifier">rbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> <span class="identifier">const_reverse_iterator</span> <a class="link" href="stable_vector.html#idp40482976-bb"><span class="identifier">rbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> <span class="identifier">reverse_iterator</span> <a class="link" href="stable_vector.html#idp40487568-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> <span class="identifier">const_reverse_iterator</span> <a class="link" href="stable_vector.html#idp40492144-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> <span class="identifier">const_iterator</span> <a class="link" href="stable_vector.html#idp40496720-bb"><span class="identifier">cbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> <span class="identifier">const_iterator</span> <a class="link" href="stable_vector.html#idp40501296-bb"><span class="identifier">cend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> <span class="identifier">const_reverse_iterator</span> <a class="link" href="stable_vector.html#idp40505856-bb"><span class="identifier">crbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> <span class="identifier">const_reverse_iterator</span> <a class="link" href="stable_vector.html#idp40510448-bb"><span class="identifier">crend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> <span class="keyword">bool</span> <a class="link" href="stable_vector.html#idp40515024-bb"><span class="identifier">empty</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> <span class="identifier">size_type</span> <a class="link" href="stable_vector.html#idp40519552-bb"><span class="identifier">size</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> <span class="identifier">size_type</span> <a class="link" href="stable_vector.html#idp40524112-bb"><span class="identifier">max_size</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> <span class="keyword">void</span> <a class="link" href="stable_vector.html#idp40528672-bb"><span class="identifier">resize</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">)</span><span class="special">;</span> <span class="keyword">void</span> <a class="link" href="stable_vector.html#idp40533072-bb"><span class="identifier">resize</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">,</span> <a class="link" href="default_init_t.html" title="Struct default_init_t">default_init_t</a><span class="special">)</span><span class="special">;</span> <span class="keyword">void</span> <a class="link" href="stable_vector.html#idp40539136-bb"><span class="identifier">resize</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span> <span class="identifier">size_type</span> <a class="link" href="stable_vector.html#idp40544224-bb"><span class="identifier">capacity</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> <span class="keyword">void</span> <a class="link" href="stable_vector.html#idp40548112-bb"><span class="identifier">reserve</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">)</span><span class="special">;</span> <span class="keyword">void</span> <a class="link" href="stable_vector.html#idp40551776-bb"><span class="identifier">shrink_to_fit</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> <span class="identifier">reference</span> <a class="link" href="stable_vector.html#idp40556128-bb"><span class="identifier">front</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> <span class="identifier">const_reference</span> <a class="link" href="stable_vector.html#idp40560816-bb"><span class="identifier">front</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> <span class="identifier">reference</span> <a class="link" href="stable_vector.html#idp40565504-bb"><span class="identifier">back</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> <span class="identifier">const_reference</span> <a class="link" href="stable_vector.html#idp40570192-bb"><span class="identifier">back</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> <span class="identifier">reference</span> <a class="link" href="stable_vector.html#idp40574880-bb"><span class="keyword">operator</span><span class="special">[</span><span class="special">]</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> <span class="identifier">const_reference</span> <a class="link" href="stable_vector.html#idp40580272-bb"><span class="keyword">operator</span><span class="special">[</span><span class="special">]</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> <span class="identifier">reference</span> <a class="link" href="stable_vector.html#idp40585664-bb"><span class="identifier">at</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">)</span><span class="special">;</span> <span class="identifier">const_reference</span> <a class="link" href="stable_vector.html#idp40590800-bb"><span class="identifier">at</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span><span class="special">...</span> Args<span class="special">&gt;</span> <span class="keyword">void</span> <a class="link" href="stable_vector.html#idp40596208-bb"><span class="identifier">emplace_back</span></a><span class="special">(</span><span class="identifier">Args</span> <span class="special">&amp;&amp;</span><span class="special">...</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span><span class="special">...</span> Args<span class="special">&gt;</span> <span class="identifier">iterator</span> <a class="link" href="stable_vector.html#idp40602432-bb"><span class="identifier">emplace</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">Args</span> <span class="special">&amp;&amp;</span><span class="special">...</span><span class="special">)</span><span class="special">;</span> <span class="keyword">void</span> <a class="link" href="stable_vector.html#idp40609488-bb"><span class="identifier">push_back</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span> <span class="keyword">void</span> <a class="link" href="stable_vector.html#idp40614528-bb"><span class="identifier">push_back</span></a><span class="special">(</span><span class="identifier">T</span> <span class="special">&amp;&amp;</span><span class="special">)</span><span class="special">;</span> <span class="identifier">iterator</span> <a class="link" href="stable_vector.html#idp40619568-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span> <span class="identifier">iterator</span> <a class="link" href="stable_vector.html#idp40626304-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">T</span> <span class="special">&amp;&amp;</span><span class="special">)</span><span class="special">;</span> <span class="identifier">iterator</span> <a class="link" href="stable_vector.html#idp40633024-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span> <span class="identifier">iterator</span> <a class="link" href="stable_vector.html#idp40640432-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">initializer_list</span><span class="special">&lt;</span> <span class="identifier">value_type</span> <span class="special">&gt;</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> InputIterator<span class="special">&gt;</span> <span class="identifier">iterator</span> <a class="link" href="stable_vector.html#idp40647200-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">InputIterator</span><span class="special">,</span> <span class="identifier">InputIterator</span><span class="special">)</span><span class="special">;</span> <span class="keyword">void</span> <a class="link" href="stable_vector.html#idp40655568-bb"><span class="identifier">pop_back</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> <span class="identifier">iterator</span> <a class="link" href="stable_vector.html#idp40660112-bb"><span class="identifier">erase</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> <span class="identifier">iterator</span> <a class="link" href="stable_vector.html#idp40664688-bb"><span class="identifier">erase</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> <span class="keyword">void</span> <a class="link" href="stable_vector.html#idp40669984-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span> <span class="keyword">void</span> <a class="link" href="stable_vector.html#idp40674496-bb"><span class="identifier">clear</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> <span class="comment">// <a class="link" href="stable_vector.html#idp40757904-bb">friend functions</a></span> <span class="keyword">friend</span> <span class="keyword">bool</span> <a class="link" href="stable_vector.html#idp40758464-bb"><span class="keyword">operator</span><span class="special">==</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span> <span class="keyword">friend</span> <span class="keyword">bool</span> <a class="link" href="stable_vector.html#idp40763456-bb"><span class="keyword">operator</span><span class="special">!=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span> <span class="keyword">friend</span> <span class="keyword">bool</span> <a class="link" href="stable_vector.html#idp40768448-bb"><span class="keyword">operator</span><span class="special">&lt;</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span> <span class="keyword">friend</span> <span class="keyword">bool</span> <a class="link" href="stable_vector.html#idp40773440-bb"><span class="keyword">operator</span><span class="special">&gt;</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span> <span class="keyword">friend</span> <span class="keyword">bool</span> <a class="link" href="stable_vector.html#idp40778432-bb"><span class="keyword">operator</span><span class="special">&lt;=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span> <span class="keyword">friend</span> <span class="keyword">bool</span> <a class="link" href="stable_vector.html#idp40783440-bb"><span class="keyword">operator</span><span class="special">&gt;=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span> <span class="keyword">friend</span> <span class="keyword">void</span> <a class="link" href="stable_vector.html#idp40788448-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a> <span class="special">&amp;</span><span class="special">,</span> <a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span> <span class="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> <a name="idp170596560"></a><h2>Description</h2> <p>Originally developed by Joaquin M. Lopez Munoz, <a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a> is a std::vector drop-in replacement implemented as a node container, offering iterator and reference stability.</p> <p>Here are the details taken from the author's blog (<a href="http://bannalia.blogspot.com/2008/09/introducing-stablevector.html" target="_top">Introducing stable_vector</a>):</p> <p>We present <a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a>, a fully STL-compliant stable container that provides most of the features of std::vector except element contiguity.</p> <p>General properties: <a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a> satisfies all the requirements of a container, a reversible container and a sequence and provides all the optional operations present in std::vector. Like std::vector, iterators are random access. <a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a> does not provide element contiguity; in exchange for this absence, the container is stable, i.e. references and iterators to an element of a <a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a> remain valid as long as the element is not erased, and an iterator that has been assigned the return value of end() always remain valid until the destruction of the associated <a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a>.</p> <p>Operation complexity: The big-O complexities of <a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a> operations match exactly those of std::vector. In general, insertion/deletion is constant time at the end of the sequence and linear elsewhere. Unlike std::vector, <a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a> does not internally perform any value_type destruction, copy or assignment operations other than those exactly corresponding to the insertion of new elements or deletion of stored elements, which can sometimes compensate in terms of performance for the extra burden of doing more pointer manipulation and an additional allocation per element.</p> <p>Exception safety: As <a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a> does not internally copy elements around, some operations provide stronger exception safety guarantees than in std::vector.</p> <p> </p> <div class="refsect2"> <a name="idp170608832"></a><h3>Template Parameters</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> <pre class="literallayout"><span class="keyword">typename</span> T</pre> <p>The type of object that is stored in the <code class="computeroutput"><a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a></code> </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">typename</span> Allocator <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">allocator</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></pre> <p>The allocator used for all internal memory management </p> </li> </ol></div> </div> <div class="refsect2"> <a name="idp170619232"></a><h3> <a name="boost.container.stable_vectorconstruct-copy-destruct"></a><code class="computeroutput">stable_vector</code> public construct/copy/destruct</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> <pre class="literallayout"><a name="idp40679968-bb"></a><span class="identifier">stable_vector</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Default constructs a <code class="computeroutput"><a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a></code>.</p> <p><span class="bold"><strong>Throws</strong></span>: If allocator_type's default constructor throws.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">explicit</span> <a name="idp40683696-bb"></a><span class="identifier">stable_vector</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">allocator_type</span> <span class="special">&amp;</span> al<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Constructs a <code class="computeroutput"><a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a></code> taking the allocator as parameter.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">explicit</span> <a name="idp40688640-bb"></a><span class="identifier">stable_vector</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Constructs a <code class="computeroutput"><a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a></code> that will use a copy of allocator a and inserts n value initialized values.</p> <p><span class="bold"><strong>Throws</strong></span>: If allocator_type's default constructor throws or T's default or copy constructor throws.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to n. </p> </li> <li class="listitem"> <pre class="literallayout"><a name="idp40693440-bb"></a><span class="identifier">stable_vector</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">,</span> <a class="link" href="default_init_t.html" title="Struct default_init_t">default_init_t</a><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Constructs a <code class="computeroutput"><a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a></code> that will use a copy of allocator a and inserts n default initialized values.</p> <p><span class="bold"><strong>Throws</strong></span>: If allocator_type's default constructor throws or T's default or copy constructor throws.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to n.</p> <p><span class="bold"><strong>Note</strong></span>: Non-standard extension </p> </li> <li class="listitem"> <pre class="literallayout"><a name="idp40699648-bb"></a><span class="identifier">stable_vector</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span> <span class="special">&amp;</span> t<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">allocator_type</span> <span class="special">&amp;</span> al <span class="special">=</span> <span class="identifier">allocator_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Constructs a <code class="computeroutput"><a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a></code> that will use a copy of allocator a and inserts n copies of value.</p> <p><span class="bold"><strong>Throws</strong></span>: If allocator_type's default constructor throws or T's default or copy constructor throws.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to n. </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> InputIterator<span class="special">&gt;</span> <a name="idp40705824-bb"></a><span class="identifier">stable_vector</span><span class="special">(</span><span class="identifier">InputIterator</span> first<span class="special">,</span> <span class="identifier">InputIterator</span> last<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">allocator_type</span> <span class="special">&amp;</span> al <span class="special">=</span> <span class="identifier">allocator_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Constructs a <code class="computeroutput"><a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a></code> that will use a copy of allocator a and inserts a copy of the range [first, last) in the <code class="computeroutput"><a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a></code>.</p> <p><span class="bold"><strong>Throws</strong></span>: If allocator_type's default constructor throws or T's constructor taking a dereferenced InIt throws.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the range [first, last). </p> </li> <li class="listitem"> <pre class="literallayout"><a name="idp40713632-bb"></a><span class="identifier">stable_vector</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a> <span class="special">&amp;</span> x<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Copy constructs a <code class="computeroutput"><a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a></code>.</p> <p><span class="bold"><strong>Postcondition</strong></span>: x == *this.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the elements x contains. </p> </li> <li class="listitem"> <pre class="literallayout"><a name="idp40718480-bb"></a><span class="identifier">stable_vector</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">initializer_list</span><span class="special">&lt;</span> <span class="identifier">value_type</span> <span class="special">&gt;</span> il<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">allocator_type</span> <span class="special">&amp;</span> l <span class="special">=</span> <span class="identifier">allocator_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Constructs a <code class="computeroutput"><a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a></code> that will use a copy of allocator a and inserts a copy of the range [il.begin(), il.last()) in the <code class="computeroutput"><a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a></code></p> <p><span class="bold"><strong>Throws</strong></span>: If allocator_type's default constructor throws or T's constructor taking a dereferenced initializer_list iterator throws.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the range [il.begin(), il.end()). </p> </li> <li class="listitem"> <pre class="literallayout"><a name="idp40724656-bb"></a><span class="identifier">stable_vector</span><span class="special">(</span><a class="link" href="stable_vector.html" title="Class template stable_vector">stable_vector</a> <span class="special">&amp;&amp;</span> x<span class="special">)</spa