1 <?xml version=
"1.0" encoding=
"utf-8" ?>
2 <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns=
"http://www.w3.org/1999/xhtml" xml:
lang=
"en" lang=
"en">
5 <meta http-equiv=
"Content-Type" content=
"text/html; charset=utf-8" />
6 <meta name=
"generator" content=
"Docutils 0.7: http://docutils.sourceforge.net/" />
7 <title>The MPL Reference Manual: Extensible Associative Sequence
</title>
8 <link rel=
"stylesheet" href=
"../style.css" type=
"text/css" />
10 <body class=
"docframe refmanual">
11 <table class=
"header"><tr class=
"header"><td class=
"header-group navigation-bar"><span class=
"navigation-group"><a href=
"./associative-sequence.html" class=
"navigation-link">Prev
</a> <a href=
"./integral-sequence-wrapper.html" class=
"navigation-link">Next
</a></span><span class=
"navigation-group-separator"> |
</span><span class=
"navigation-group"><a href=
"./associative-sequence.html" class=
"navigation-link">Back
</a> <a href=
"./integral-sequence-wrapper.html" class=
"navigation-link">Along
</a></span><span class=
"navigation-group-separator"> |
</span><span class=
"navigation-group"><a href=
"./concepts.html" class=
"navigation-link">Up
</a> <a href=
"../refmanual.html" class=
"navigation-link">Home
</a></span><span class=
"navigation-group-separator"> |
</span><span class=
"navigation-group"><a href=
"./refmanual_toc.html" class=
"navigation-link">Full TOC
</a></span></td>
12 <td class=
"header-group page-location"><a href=
"../refmanual.html" class=
"navigation-link">Front Page
</a> /
<a href=
"./sequences.html" class=
"navigation-link">Sequences
</a> /
<a href=
"./concepts.html" class=
"navigation-link">Concepts
</a> /
<a href=
"./extensible-associative-sequence.html" class=
"navigation-link">Extensible Associative Sequence
</a></td>
13 </tr></table><div class=
"header-separator"></div>
14 <div class=
"section" id=
"extensible-associative-sequence">
15 <h1><a class=
"toc-backref" href=
"./concepts.html#id1402">Extensible Associative Sequence
</a></h1>
16 <div class=
"section" id=
"id35">
17 <h3><a class=
"subsection-title" href=
"#description" name=
"description">Description
</a></h3>
18 <p>An
<a class=
"reference internal" href=
"./extensible-associative-sequence.html">Extensible Associative Sequence
</a> is an
<a class=
"reference internal" href=
"./associative-sequence.html">Associative Sequence
</a> that supports
19 insertion and removal of elements. In contrast to
<a class=
"reference internal" href=
"./extensible-sequence.html">Extensible Sequence
</a>,
20 <a class=
"reference internal" href=
"./extensible-associative-sequence.html">Extensible Associative Sequence
</a> does not provide a mechanism for
21 inserting an element at a specific position.
</p>
23 <div class=
"section" id=
"id36">
24 <h3><a class=
"subsection-title" href=
"#expression-requirements" name=
"expression-requirements">Expression requirements
</a></h3>
25 <p>In the following table and subsequent specifications,
<tt class=
"literal"><span class=
"pre">s
</span></tt> is an
<a class=
"reference internal" href=
"./associative-sequence.html">Associative Sequence
</a>,
26 <tt class=
"literal"><span class=
"pre">pos
</span></tt> is an iterator into
<tt class=
"literal"><span class=
"pre">s
</span></tt>, and
<tt class=
"literal"><span class=
"pre">x
</span></tt> and
<tt class=
"literal"><span class=
"pre">k
</span></tt> are arbitrary types.
</p>
27 <p>In addition to the
<a class=
"reference internal" href=
"./associative-sequence.html">Associative Sequence
</a> requirements, the following must be met:
</p>
28 <table border=
"1" class=
"docutils table">
34 <thead valign=
"bottom">
35 <tr><th class=
"head">Expression
</th>
36 <th class=
"head">Type
</th>
37 <th class=
"head">Complexity
</th>
41 <tr><td><tt class=
"literal"><span class=
"pre"><a href=
"./insert.html" class=
"identifier">insert
</a><s,x
>::type
</span></tt></td>
42 <td><a class=
"reference internal" href=
"./extensible-associative-sequence.html">Extensible Associative Sequence
</a></td>
43 <td>Amortized constant time
</td>
45 <tr><td><tt class=
"literal"><span class=
"pre"><a href=
"./insert.html" class=
"identifier">insert
</a><s,pos,x
>::type
</span></tt></td>
46 <td><a class=
"reference internal" href=
"./extensible-associative-sequence.html">Extensible Associative Sequence
</a></td>
47 <td>Amortized constant time
</td>
49 <tr><td><tt class=
"literal"><span class=
"pre"><a href=
"./erase-key.html" class=
"identifier">erase_key
</a><s,k
>::type
</span></tt></td>
50 <td><a class=
"reference internal" href=
"./extensible-associative-sequence.html">Extensible Associative Sequence
</a></td>
51 <td>Amortized constant time
</td>
53 <tr><td><tt class=
"literal"><span class=
"pre"><a href=
"./erase.html" class=
"identifier">erase
</a><s,pos
>::type
</span></tt></td>
54 <td><a class=
"reference internal" href=
"./extensible-associative-sequence.html">Extensible Associative Sequence
</a></td>
55 <td>Amortized constant time
</td>
57 <tr><td><tt class=
"literal"><span class=
"pre"><a href=
"./clear.html" class=
"identifier">clear
</a><s
>::type
</span></tt></td>
58 <td><a class=
"reference internal" href=
"./extensible-associative-sequence.html">Extensible Associative Sequence
</a></td>
59 <td>Amortized constant time
</td>
64 <div class=
"section" id=
"id37">
65 <h3><a class=
"subsection-title" href=
"#expression-semantics" name=
"expression-semantics">Expression semantics
</a></h3>
66 <p>The semantics of an expression are defined only
67 where they differ from, or are not defined in
<a class=
"reference internal" href=
"./associative-sequence.html">Associative Sequence
</a>.
</p>
68 <table border=
"1" class=
"docutils table">
73 <thead valign=
"bottom">
74 <tr><th class=
"head">Expression
</th>
75 <th class=
"head">Semantics
</th>
79 <tr><td><tt class=
"literal"><span class=
"pre"><a href=
"./insert.html" class=
"identifier">insert
</a><s,x
>::type
</span></tt></td>
80 <td><p class=
"first">Inserts
<tt class=
"literal"><span class=
"pre">x
</span></tt> into
<tt class=
"literal"><span class=
"pre">s
</span></tt>; the resulting sequence
<tt class=
"literal"><span class=
"pre">r
</span></tt> is
81 equivalent to
<tt class=
"literal"><span class=
"pre">s
</span></tt> except that
</p>
82 <pre class=
"literal-block">
83 <a href=
"./at.html" class=
"identifier">at
</a>< r,
<a href=
"./key-type.html" class=
"identifier">key_type
</a><s,x
>::type
>::type
85 <p class=
"last">is identical to
<tt class=
"literal"><span class=
"pre"><a href=
"./value-type.html" class=
"identifier">value_type
</a><s,x
>::type
</span></tt>; see
<a class=
"reference internal" href=
"./insert.html">insert
</a>.
</p>
88 <tr><td><tt class=
"literal"><span class=
"pre"><a href=
"./insert.html" class=
"identifier">insert
</a><s,pos,x
>::type
</span></tt></td>
89 <td>Equivalent to
<tt class=
"literal"><span class=
"pre"><a href=
"./insert.html" class=
"identifier">insert
</a><s,x
>::type
</span></tt>;
<tt class=
"literal"><span class=
"pre">pos
</span></tt> is ignored;
90 see
<a class=
"reference internal" href=
"./insert.html">insert
</a>.
</td>
92 <tr><td><tt class=
"literal"><span class=
"pre"><a href=
"./erase-key.html" class=
"identifier">erase_key
</a><s,k
>::type
</span></tt></td>
93 <td>Erases elements in
<tt class=
"literal"><span class=
"pre">s
</span></tt> associated with the key
<tt class=
"literal"><span class=
"pre">k
</span></tt>;
94 the resulting sequence
<tt class=
"literal"><span class=
"pre">r
</span></tt> is equivalent to
<tt class=
"literal"><span class=
"pre">s
</span></tt> except
95 that
<tt class=
"literal"><span class=
"pre"><a href=
"./has-key.html" class=
"identifier">has_key
</a><r,k
>::value
</span> <span class=
"pre">==
</span> <span class=
"pre">false
</span></tt>; see
<a class=
"reference internal" href=
"./erase-key.html">erase_key
</a>.
</td>
97 <tr><td><tt class=
"literal"><span class=
"pre"><a href=
"./erase.html" class=
"identifier">erase
</a><s,pos
>::type
</span></tt></td>
98 <td>Erases the element at a specific position; equivalent to
99 <tt class=
"literal"><span class=
"pre"><a href=
"./erase-key.html" class=
"identifier">erase_key
</a><s,
</span> <span class=
"pre"><a href=
"./deref.html" class=
"identifier">deref
</a><pos
>::type
</span> <span class=
"pre">>::type
</span></tt>; see
<a class=
"reference internal" href=
"./erase.html">erase
</a>.
</td>
101 <tr><td><tt class=
"literal"><span class=
"pre"><a href=
"./clear.html" class=
"identifier">clear
</a><s
>::type
</span></tt></td>
102 <td>An empty sequence concept-identical to
<tt class=
"literal"><span class=
"pre">s
</span></tt>; see
103 <a class=
"reference internal" href=
"./clear.html">clear
</a>.
</td>
110 For any extensible associative sequence ``s`` the following invariants always hold: -->
112 <div class=
"section" id=
"id38">
113 <h3><a class=
"subsection-title" href=
"#models" name=
"models">Models
</a></h3>
115 <li><a class=
"reference internal" href=
"./set.html">set
</a></li>
116 <li><a class=
"reference internal" href=
"./map.html">map
</a></li>
118 <!-- * |multiset| -->
120 <div class=
"section" id=
"id39">
121 <h3><a class=
"subsection-title" href=
"#see-also" name=
"see-also">See also
</a></h3>
122 <p><a class=
"reference internal" href=
"./sequences.html">Sequences
</a>,
<a class=
"reference internal" href=
"./associative-sequence.html">Associative Sequence
</a>,
<a class=
"reference internal" href=
"./insert.html">insert
</a>,
<a class=
"reference internal" href=
"./erase.html">erase
</a>,
<a class=
"reference internal" href=
"./clear.html">clear
</a></p>
123 <!-- Sequences/Concepts//Integral Sequence Wrapper |90 -->
127 <div class=
"footer-separator"></div>
128 <table class=
"footer"><tr class=
"footer"><td class=
"header-group navigation-bar"><span class=
"navigation-group"><a href=
"./associative-sequence.html" class=
"navigation-link">Prev
</a> <a href=
"./integral-sequence-wrapper.html" class=
"navigation-link">Next
</a></span><span class=
"navigation-group-separator"> |
</span><span class=
"navigation-group"><a href=
"./associative-sequence.html" class=
"navigation-link">Back
</a> <a href=
"./integral-sequence-wrapper.html" class=
"navigation-link">Along
</a></span><span class=
"navigation-group-separator"> |
</span><span class=
"navigation-group"><a href=
"./concepts.html" class=
"navigation-link">Up
</a> <a href=
"../refmanual.html" class=
"navigation-link">Home
</a></span><span class=
"navigation-group-separator"> |
</span><span class=
"navigation-group"><a href=
"./refmanual_toc.html" class=
"navigation-link">Full TOC
</a></span></td>
129 <td><div class=
"copyright-footer"><div class=
"copyright">Copyright ©
2001-
2009 Aleksey Gurtovoy and David Abrahams
</div>
130 Distributed under the Boost Software License, Version
1.0. (See accompanying
131 file LICENSE_1_0.txt or copy at
<a class=
"reference external" href=
"http://www.boost.org/LICENSE_1_0.txt" target=
"_top">http://www.boost.org/LICENSE_1_0.txt
</a>)
</div></td></tr></table></body>