1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 2<html> 3<head> 4<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 5<title>Chapter 9. Boost.Container</title> 6<link rel="stylesheet" href="../../doc/src/boostbook.css" type="text/css"> 7<meta name="generator" content="DocBook XSL Stylesheets V1.79.1"> 8<link rel="home" href="index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> 9<link rel="up" href="libraries.html" title="Part I. The Boost C++ Libraries (BoostBook Subset)"> 10<link rel="prev" href="circular_buffer/s14.html" title="Index"> 11<link rel="next" href="container/main_features.html" title="Main features"> 12</head> 13<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> 14<table cellpadding="2" width="100%"><tr> 15<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../boost.png"></td> 16<td align="center"><a href="../../index.html">Home</a></td> 17<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td> 18<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> 19<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> 20<td align="center"><a href="../../more/index.htm">More</a></td> 21</tr></table> 22<hr> 23<div class="spirit-nav"> 24<a accesskey="p" href="circular_buffer/s14.html"><img src="../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="libraries.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="container/main_features.html"><img src="../../doc/src/images/next.png" alt="Next"></a> 25</div> 26<div class="chapter"> 27<div class="titlepage"><div> 28<div><h2 class="title"> 29<a name="container"></a>Chapter 9. Boost.Container</h2></div> 30<div><div class="author"><h3 class="author"> 31<span class="firstname">Ion</span> <span class="surname">Gaztanaga</span> 32</h3></div></div> 33<div><p class="copyright">Copyright © 2009-2018 Ion Gaztanaga</p></div> 34<div><div class="legalnotice"> 35<a name="container.legal"></a><p> 36 Distributed under the Boost Software License, Version 1.0. (See accompanying 37 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>) 38 </p> 39</div></div> 40</div></div> 41<div class="toc"> 42<p><b>Table of Contents</b></p> 43<dl class="toc"> 44<dt><span class="section"><a href="container.html#container.intro">Introduction</a></span></dt> 45<dd><dl> 46<dt><span class="section"><a href="container.html#container.intro.introduction_building_container">Building 47 Boost.Container</a></span></dt> 48<dt><span class="section"><a href="container.html#container.intro.tested_compilers">Tested compilers</a></span></dt> 49</dl></dd> 50<dt><span class="section"><a href="container/main_features.html">Main features</a></span></dt> 51<dd><dl> 52<dt><span class="section"><a href="container/main_features.html#container.main_features.move_emplace">Efficient insertion</a></span></dt> 53<dt><span class="section"><a href="container/main_features.html#container.main_features.containers_of_incomplete_types">Containers 54 of Incomplete Types</a></span></dt> 55<dt><span class="section"><a href="container/main_features.html#container.main_features.scary_iterators">SCARY iterators</a></span></dt> 56<dt><span class="section"><a href="container/main_features.html#container.main_features.other_features">Other features</a></span></dt> 57</dl></dd> 58<dt><span class="section"><a href="container/exception_handling.html">Boost.Container and C++ exceptions</a></span></dt> 59<dt><span class="section"><a href="container/non_standard_containers.html">Non-standard containers</a></span></dt> 60<dd><dl> 61<dt><span class="section"><a href="container/non_standard_containers.html#container.non_standard_containers.stable_vector"><span class="emphasis"><em>stable_vector</em></span></a></span></dt> 62<dt><span class="section"><a href="container/non_standard_containers.html#container.non_standard_containers.flat_xxx"><span class="emphasis"><em>flat_(multi)map/set</em></span> 63 associative containers</a></span></dt> 64<dt><span class="section"><a href="container/non_standard_containers.html#container.non_standard_containers.slist"><span class="emphasis"><em>slist</em></span></a></span></dt> 65<dt><span class="section"><a href="container/non_standard_containers.html#container.non_standard_containers.static_vector"><span class="emphasis"><em>static_vector</em></span></a></span></dt> 66<dt><span class="section"><a href="container/non_standard_containers.html#container.non_standard_containers.small_vector"><span class="emphasis"><em>small_vector</em></span></a></span></dt> 67</dl></dd> 68<dt><span class="section"><a href="container/extended_functionality.html">Extended functionality: 69 Basic extensions</a></span></dt> 70<dd><dl> 71<dt><span class="section"><a href="container/extended_functionality.html#container.extended_functionality.default_initialialization">Default 72 initialization for vector-like containers</a></span></dt> 73<dt><span class="section"><a href="container/extended_functionality.html#container.extended_functionality.ordered_range_insertion">Ordered 74 range insertion for associative containers (<span class="emphasis"><em>ordered_unique_range</em></span>, 75 <span class="emphasis"><em>ordered_range</em></span>) </a></span></dt> 76<dt><span class="section"><a href="container/extended_functionality.html#container.extended_functionality.constant_time_range_splice">Constant-time 77 range splice for <code class="computeroutput"><span class="special">(</span><span class="identifier">s</span><span class="special">)</span><span class="identifier">list</span></code></a></span></dt> 78</dl></dd> 79<dt><span class="section"><a href="container/configurable_containers.html">Extended functionality: 80 Configurable containers</a></span></dt> 81<dd><dl> 82<dt><span class="section"><a href="container/configurable_containers.html#container.configurable_containers.configurable_tree_based_associative_containers">Configurable 83 tree-based associative ordered containers</a></span></dt> 84<dt><span class="section"><a href="container/configurable_containers.html#container.configurable_containers.configurable_vectors">Configurable 85 vectors</a></span></dt> 86<dt><span class="section"><a href="container/configurable_containers.html#container.configurable_containers.configurable_deques">Configurable 87 deques</a></span></dt> 88<dt><span class="section"><a href="container/configurable_containers.html#container.configurable_containers.configurable_static_vectors">Configurable 89 static vector</a></span></dt> 90<dt><span class="section"><a href="container/configurable_containers.html#container.configurable_containers.configurable_small_vectors">Configurable 91 small vector</a></span></dt> 92</dl></dd> 93<dt><span class="section"><a href="container/extended_allocators.html">Extended functionality: 94 Extended allocators</a></span></dt> 95<dt><span class="section"><a href="container/cpp_conformance.html">C++11/C++14/C++17 Conformance</a></span></dt> 96<dd><dl> 97<dt><span class="section"><a href="container/cpp_conformance.html#container.cpp_conformance.move_emplace">Move and Emplace</a></span></dt> 98<dt><span class="section"><a href="container/cpp_conformance.html#container.cpp_conformance.alloc_traits_move_traits">Stateful 99 allocators</a></span></dt> 100<dt><span class="section"><a href="container/cpp_conformance.html#container.cpp_conformance.scoped_allocator">Scoped allocators</a></span></dt> 101<dt><span class="section"><a href="container/cpp_conformance.html#container.cpp_conformance.insertion_hints">Insertion 102 hints in associative containers and preserving insertion ordering for elements 103 with equivalent keys</a></span></dt> 104<dt><span class="section"><a href="container/cpp_conformance.html#container.cpp_conformance.initializer_lists">Initializer 105 lists</a></span></dt> 106<dt><span class="section"><a href="container/cpp_conformance.html#container.cpp_conformance.null_iterators">Null Forward 107 Iterators</a></span></dt> 108<dt><span class="section"><a href="container/cpp_conformance.html#container.cpp_conformance.polymorphic_memory_resources">Polymorphic 109 Memory Resources </a></span></dt> 110<dt><span class="section"><a href="container/cpp_conformance.html#container.cpp_conformance.forward_list"><code class="computeroutput"><span class="identifier">forward_list</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span></code></a></span></dt> 111<dt><span class="section"><a href="container/cpp_conformance.html#container.cpp_conformance.vector_exception_guarantees"><code class="computeroutput"><span class="identifier">vector</span></code> vs. <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span></code> 112 exception guarantees</a></span></dt> 113<dt><span class="section"><a href="container/cpp_conformance.html#container.cpp_conformance.container_const_reference_parameters">Parameter 114 taken by const reference that can be changed</a></span></dt> 115<dt><span class="section"><a href="container/cpp_conformance.html#container.cpp_conformance.Vector_bool"><code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="keyword">bool</span><span class="special">></span></code> specialization</a></span></dt> 116<dt><span class="section"><a href="container/cpp_conformance.html#container.cpp_conformance.non_standard_memset_initialization">Non-standard 117 value initialization using <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">memset</span></code></a></span></dt> 118</dl></dd> 119<dt><span class="section"><a href="container/known_issues.html">Known Issues</a></span></dt> 120<dd><dl><dt><span class="section"><a href="container/known_issues.html#container.known_issues.move_emulation_limitations">Move 121 emulation limitations in C++03 compilers</a></span></dt></dl></dd> 122<dt><span class="section"><a href="container/history_and_reasons.html">History and reasons to use 123 Boost.Container</a></span></dt> 124<dd><dl> 125<dt><span class="section"><a href="container/history_and_reasons.html#container.history_and_reasons.boost_container_history">Boost.Container 126 history</a></span></dt> 127<dt><span class="section"><a href="container/history_and_reasons.html#container.history_and_reasons.Why_boost_container">Why 128 Boost.Container?</a></span></dt> 129</dl></dd> 130<dt><span class="section"><a href="container/index.html">Indexes</a></span></dt> 131<dd><dl> 132<dt><span class="section"><a href="container/index.html#id-1.3.10.13.2">Class Index</a></span></dt> 133<dt><span class="section"><a href="container/index.html#id-1.3.10.13.3">Typedef Index</a></span></dt> 134<dt><span class="section"><a href="container/index.html#id-1.3.10.13.4">Function Index</a></span></dt> 135</dl></dd> 136<dt><span class="section"><a href="boost_container_header_reference.html">Boost.Container Header Reference</a></span></dt> 137<dd><dl> 138<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.adaptive_pool_hpp">Header <boost/container/adaptive_pool.hpp></a></span></dt> 139<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.allocator_hpp">Header <boost/container/allocator.hpp></a></span></dt> 140<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.allocator_traits_hpp">Header <boost/container/allocator_traits.hpp></a></span></dt> 141<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.container_fwd_hpp">Header <boost/container/container_fwd.hpp></a></span></dt> 142<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.deque_hpp">Header <boost/container/deque.hpp></a></span></dt> 143<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.pmr.deque_hpp">Header <boost/container/pmr/deque.hpp></a></span></dt> 144<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.flat_map_hpp">Header <boost/container/flat_map.hpp></a></span></dt> 145<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.pmr.flat_map_hpp">Header <boost/container/pmr/flat_map.hpp></a></span></dt> 146<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.flat_set_hpp">Header <boost/container/flat_set.hpp></a></span></dt> 147<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.pmr.flat_set_hpp">Header <boost/container/pmr/flat_set.hpp></a></span></dt> 148<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.list_hpp">Header <boost/container/list.hpp></a></span></dt> 149<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.pmr.list_hpp">Header <boost/container/pmr/list.hpp></a></span></dt> 150<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.map_hpp">Header <boost/container/map.hpp></a></span></dt> 151<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.pmr.map_hpp">Header <boost/container/pmr/map.hpp></a></span></dt> 152<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.new_allocator_hpp">Header <boost/container/new_allocator.hpp></a></span></dt> 153<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.node_allocator_hpp">Header <boost/container/node_allocator.hpp></a></span></dt> 154<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.node_handle_hpp">Header <boost/container/node_handle.hpp></a></span></dt> 155<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.options_hpp">Header <boost/container/options.hpp></a></span></dt> 156<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.pmr.global_resource_hpp">Header <boost/container/pmr/global_resource.hpp></a></span></dt> 157<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.pmr.memory_resource_hpp">Header <boost/container/pmr/memory_resource.hpp></a></span></dt> 158<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.pmr.monotonic_buffer_resource_hpp">Header <boost/container/pmr/monotonic_buffer_resource.hpp></a></span></dt> 159<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.pmr.polymorphic_allocator_hpp">Header <boost/container/pmr/polymorphic_allocator.hpp></a></span></dt> 160<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.pmr.pool_options_hpp">Header <boost/container/pmr/pool_options.hpp></a></span></dt> 161<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.pmr.resource_adaptor_hpp">Header <boost/container/pmr/resource_adaptor.hpp></a></span></dt> 162<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.pmr.synchronized_pool_resource_hpp">Header <boost/container/pmr/synchronized_pool_resource.hpp></a></span></dt> 163<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.pmr.unsynchronized_pool_resource_hpp">Header <boost/container/pmr/unsynchronized_pool_resource.hpp></a></span></dt> 164<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.scoped_allocator_hpp">Header <boost/container/scoped_allocator.hpp></a></span></dt> 165<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.scoped_allocator_fwd_hpp">Header <boost/container/scoped_allocator_fwd.hpp></a></span></dt> 166<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.set_hpp">Header <boost/container/set.hpp></a></span></dt> 167<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.pmr.set_hpp">Header <boost/container/pmr/set.hpp></a></span></dt> 168<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.slist_hpp">Header <boost/container/slist.hpp></a></span></dt> 169<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.pmr.slist_hpp">Header <boost/container/pmr/slist.hpp></a></span></dt> 170<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.small_vector_hpp">Header <boost/container/small_vector.hpp></a></span></dt> 171<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.pmr.small_vector_hpp">Header <boost/container/pmr/small_vector.hpp></a></span></dt> 172<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.stable_vector_hpp">Header <boost/container/stable_vector.hpp></a></span></dt> 173<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.pmr.stable_vector_hpp">Header <boost/container/pmr/stable_vector.hpp></a></span></dt> 174<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.static_vector_hpp">Header <boost/container/static_vector.hpp></a></span></dt> 175<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.string_hpp">Header <boost/container/string.hpp></a></span></dt> 176<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.pmr.string_hpp">Header <boost/container/pmr/string.hpp></a></span></dt> 177<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.throw_exception_hpp">Header <boost/container/throw_exception.hpp></a></span></dt> 178<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.uses_allocator_hpp">Header <boost/container/uses_allocator.hpp></a></span></dt> 179<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.uses_allocator_fwd_hpp">Header <boost/container/uses_allocator_fwd.hpp></a></span></dt> 180<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.vector_hpp">Header <boost/container/vector.hpp></a></span></dt> 181<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.pmr.vector_hpp">Header <boost/container/pmr/vector.hpp></a></span></dt> 182</dl></dd> 183<dt><span class="section"><a href="container/acknowledgements_notes.html">Acknowledgements, notes 184 and links</a></span></dt> 185<dt><span class="section"><a href="container/release_notes.html">Release Notes</a></span></dt> 186<dd><dl> 187<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_74_00">Boost 188 1.74 Release</a></span></dt> 189<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_72_00">Boost 190 1.72 Release</a></span></dt> 191<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_71_00">Boost 192 1.71 Release</a></span></dt> 193<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_70_00">Boost 194 1.70 Release</a></span></dt> 195<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_69_00">Boost 196 1.69 Release</a></span></dt> 197<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_68_00">Boost 198 1.68 Release</a></span></dt> 199<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_67_00">Boost 200 1.67 Release</a></span></dt> 201<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_66_00">Boost 202 1.66 Release</a></span></dt> 203<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_65_00">Boost 204 1.65 Release</a></span></dt> 205<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_64_00">Boost 206 1.64 Release</a></span></dt> 207<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_63_00">Boost 208 1.63 Release</a></span></dt> 209<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_62_00">Boost 210 1.62 Release</a></span></dt> 211<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_61_00">Boost 212 1.61 Release</a></span></dt> 213<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_60_00">Boost 214 1.60 Release</a></span></dt> 215<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_59_00">Boost 216 1.59 Release</a></span></dt> 217<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_58_00">Boost 218 1.58 Release</a></span></dt> 219<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_57_00">Boost 220 1.57 Release</a></span></dt> 221<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_56_00">Boost 222 1.56 Release</a></span></dt> 223<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_55_00">Boost 224 1.55 Release</a></span></dt> 225<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_54_00">Boost 226 1.54 Release</a></span></dt> 227<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_53_00">Boost 228 1.53 Release</a></span></dt> 229<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_52_00">Boost 230 1.52 Release</a></span></dt> 231<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_51_00">Boost 232 1.51 Release</a></span></dt> 233<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_50_00">Boost 234 1.50 Release</a></span></dt> 235<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_49_00">Boost 236 1.49 Release</a></span></dt> 237<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_48_00">Boost 238 1.48 Release</a></span></dt> 239</dl></dd> 240</dl> 241</div> 242<div class="section"> 243<div class="titlepage"><div><div><h2 class="title" style="clear: both"> 244<a name="container.intro"></a><a class="link" href="container.html#container.intro" title="Introduction">Introduction</a> 245</h2></div></div></div> 246<div class="toc"><dl class="toc"> 247<dt><span class="section"><a href="container.html#container.intro.introduction_building_container">Building 248 Boost.Container</a></span></dt> 249<dt><span class="section"><a href="container.html#container.intro.tested_compilers">Tested compilers</a></span></dt> 250</dl></div> 251<p> 252 <span class="bold"><strong>Boost.Container</strong></span> library implements several 253 well-known containers, including STL containers. The aim of the library is 254 to offer advanced features not present in standard containers or to offer the 255 latest standard draft features for compilers that don't comply with the latest 256 C++ standard. 257 </p> 258<p> 259 In short, what does <span class="bold"><strong>Boost.Container</strong></span> offer? 260 </p> 261<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 262<li class="listitem"> 263 Emplacement and move semantics are implemented, including emulation for 264 pre-C++11 compilers. 265 </li> 266<li class="listitem"> 267 Polymorphic allocators and memory resources, including implementation and 268 emulation for pre-C++17 compilers 269 </li> 270<li class="listitem"> 271 New advanced features (e.g. recursive containers) and configurability options 272 <a class="link" href="container/configurable_containers.html" title="Extended functionality: Configurable containers">container.configurable_containers</a> 273 for containers. 274 </li> 275<li class="listitem"> 276 Containers support stateful allocators and are compatible with <span class="bold"><strong>Boost.Interprocess</strong></span> (they can be safely placed in 277 shared memory). 278 </li> 279<li class="listitem"> 280 Users obtain a more uniform performance across all plataforms, including 281 <a class="link" href="container/main_features.html#container.main_features.scary_iterators" title="SCARY iterators">SCARY iterators</a>. 282 </li> 283<li class="listitem"> 284 The library offers new useful containers: 285 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "> 286<li class="listitem"> 287 <code class="computeroutput"><a class="link" href="boost/container/flat_map.html" title="Class template flat_map">flat_map</a></code>, 288 <code class="computeroutput"><a class="link" href="boost/container/flat_set.html" title="Class template flat_set">flat_set</a></code>, 289 <code class="computeroutput"><a class="link" href="boost/container/flat_multimap.html" title="Class template flat_multimap">flat_multimap</a></code> 290 and <code class="computeroutput"><a class="link" href="boost/container/flat_multiset.html" title="Class template flat_multiset">flat_multiset</a></code>: 291 drop-in replacements for standard associative containers but more 292 memory friendly and with faster searches. 293 </li> 294<li class="listitem"> 295 <code class="computeroutput"><a class="link" href="boost/container/stable_vector.html" title="Class template stable_vector">stable_vector</a></code>: 296 a std::list and std::vector hybrid container: vector-like random-access 297 iterators and list-like iterator stability in insertions and erasures. 298 </li> 299<li class="listitem"> 300 <code class="computeroutput"><a class="link" href="boost/container/static_vector.html" title="Class template static_vector">static_vector </a></code>: 301 a vector-like container that internally embeds (statically allocates) 302 all needed memory up to the maximum capacity. Maximum capacity can't 303 be increased and it's specified at compile time. 304 </li> 305<li class="listitem"> 306 <code class="computeroutput"><a class="link" href="boost/container/small_vector.html" title="Class template small_vector">small_vector </a></code>: 307 a vector-like container that internally embeds (statically allocates) 308 a minimum amount of memory, but dynamically allocates elements when 309 capacity has to be increased. This minimum capacity is specified 310 at compile time. 311 </li> 312<li class="listitem"> 313 <code class="computeroutput"><a class="link" href="boost/container/slist.html" title="Class template slist">slist</a></code>: the classic 314 pre-standard singly linked list implementation offering constant-time 315 <code class="computeroutput"><span class="identifier">size</span><span class="special">()</span></code>. 316 Note that C++11 <code class="computeroutput"><span class="identifier">forward_list</span></code> 317 has no <code class="computeroutput"><span class="identifier">size</span><span class="special">()</span></code>. 318 </li> 319</ul></div> 320 </li> 321</ul></div> 322<div class="section"> 323<div class="titlepage"><div><div><h3 class="title"> 324<a name="container.intro.introduction_building_container"></a><a class="link" href="container.html#container.intro.introduction_building_container" title="Building Boost.Container">Building 325 Boost.Container</a> 326</h3></div></div></div> 327<p> 328 There is no need to compile <span class="bold"><strong>Boost.Container</strong></span>, 329 since it's a header-only library, just include your Boost header directory 330 in your compiler include path <span class="bold"><strong>except if you use</strong></span>: 331 </p> 332<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 333<li class="listitem"> 334 <a class="link" href="container/extended_allocators.html" title="Extended functionality: Extended allocators">Extended Allocators</a> 335 </li> 336<li class="listitem"> 337 Some <a class="link" href="container/cpp_conformance.html#container.cpp_conformance.polymorphic_memory_resources" title="Polymorphic Memory Resources">Polymorphic 338 Memory Resources</a> classes. 339 </li> 340</ul></div> 341<p> 342 Those exceptions are are implemented as a separately compiled library, so 343 in those cases you must install binaries in a location that can be found 344 by your linker. If you followed the <a href="http://www.boost.org/doc/libs/release/more/getting_started/index.html" target="_top">Boost 345 Getting Started</a> instructions, that's already been done for you. 346 </p> 347</div> 348<div class="section"> 349<div class="titlepage"><div><div><h3 class="title"> 350<a name="container.intro.tested_compilers"></a><a class="link" href="container.html#container.intro.tested_compilers" title="Tested compilers">Tested compilers</a> 351</h3></div></div></div> 352<p> 353 <span class="bold"><strong>Boost.Container</strong></span> requires a decent C++03 354 compatibility. Some compilers known to work are: 355 </p> 356<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 357<li class="listitem"> 358 Visual C++ >= 10.0 359 </li> 360<li class="listitem"> 361 GCC >= 4.8 362 </li> 363</ul></div> 364</div> 365</div> 366</div> 367<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> 368<td align="left"><p><small>Last revised: August 11, 2020 at 15:03:47 GMT</small></p></td> 369<td align="right"><div class="copyright-footer"></div></td> 370</tr></table> 371<hr> 372<div class="spirit-nav"> 373<a accesskey="p" href="circular_buffer/s14.html"><img src="../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="libraries.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="container/main_features.html"><img src="../../doc/src/images/next.png" alt="Next"></a> 374</div> 375</body> 376</html> 377