]> oss.titaniummirror.com Git - msp430-gcc.git/blobdiff - libstdc++-v3/docs/doxygen/tables.html
Imported gcc-4.4.3
[msp430-gcc.git] / libstdc++-v3 / docs / doxygen / tables.html
diff --git a/libstdc++-v3/docs/doxygen/tables.html b/libstdc++-v3/docs/doxygen/tables.html
deleted file mode 100644 (file)
index 07e9f3e..0000000
+++ /dev/null
@@ -1,645 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
-<title>Tables</title>
-<link href="style.css" rel="stylesheet" type="text/css">
-</head>
-
-<body bgcolor="#ffffff">
-
-<h1>Tables</h1>
-
-<p>Most of the requirements on containers are presented in the ISO standard
-   in the form of tables.  In order to avoid massive duplication of effort
-   while documenting all the classes, we follow the standard's lead and
-   present the base information here.  Individual classes will only document
-   their departures from these tables (removed functions, additional functions,
-   changes, etc).
-</p>
-
-<p>We will not try to duplicate all of the surrounding text (footnotes,
-   explanations, etc) from the standard, because that would also entail a
-   duplication of effort.  Some of the surrounding text has been paraphrased
-   here for clarity.  If you are uncertain about the meaning or interpretation
-   of these notes, consult a good textbook, and/or purchase your own copy of
-   the standard (it's cheap, see our FAQ).
-</p>
-
-<p>The table numbers are the same as those used in the standard.  Tables can
-   be jumped to using their number, e.g., &quot;tables.html#67&quot;.  Only
-   Tables 65 through 69 are presented.  Some of the active Defect Reports
-   are also noted or incorporated.
-</p>
-
-<hr />
-
-<a name="65"><p>
-<table cellpadding="3" cellspacing="5" align="center" rules="rows" border="3"
-       cols="5" title="Table 65">
-<caption><h2>Table 65 --- Container Requirements</h2></caption>
-<tr><th colspan="5">
-Anything calling itself a container must meet these minimum requirements.
-</th></tr>
-<tr>
-<td><strong>expression</strong></td>
-<td><strong>result type</strong></td>
-<td><strong>operational semantics</strong></td>
-<td><strong>notes, pre-/post-conditions, assertions</strong></td>
-<td><strong>complexity</strong></td>
-</tr>
-
-<tr>
-<td>X::value_type</td>
-<td>T</td>
-<td>&nbsp;</td>
-<td>T is Assignable</td>
-<td>compile time</td>
-</tr>
-
-<tr>
-<td>X::reference</td>
-<td>lvalue of T</td>
-<td>&nbsp;</td>
-<td>&nbsp;</td>
-<td>compile time</td>
-</tr>
-
-<tr>
-<td>X::const_reference</td>
-<td>const lvalue of T</td>
-<td>&nbsp;</td>
-<td>&nbsp;</td>
-<td>compile time</td>
-</tr>
-
-<tr>
-<td>X::iterator</td>
-<td>iterator type pointing to T</td>
-<td>&nbsp;</td>
-<td>Any iterator category except output iterator.
-    Convertible to X::const_iterator.</td>
-<td>compile time</td>
-</tr>
-
-<tr>
-<td>X::const_iterator</td>
-<td>iterator type pointing to const T</td>
-<td>&nbsp;</td>
-<td>Any iterator category except output iterator.</td>
-<td>compile time</td>
-</tr>
-
-<tr>
-<td>X::difference_type</td>
-<td>signed integral type</td>
-<td>&nbsp;</td>
-<td>identical to the difference type of X::iterator and X::const_iterator</td>
-<td>compile time</td>
-</tr>
-
-<tr>
-<td>X::size_type</td>
-<td>unsigned integral type</td>
-<td>&nbsp;</td>
-<td>size_type can represent any non-negative value of difference_type</td>
-<td>compile time</td>
-</tr>
-
-<tr>
-<td>X u;</td>
-<td>&nbsp;</td>
-<td>&nbsp;</td>
-<td>post: u.size() == 0</td>
-<td>constant</td>
-</tr>
-
-<tr>
-<td>X();</td>
-<td>&nbsp;</td>
-<td>&nbsp;</td>
-<td>X().size == 0</td>
-<td>constant</td>
-</tr>
-
-<tr>
-<td>X(a);</td>
-<td>&nbsp;</td>
-<td>&nbsp;</td>
-<td>a == X(a)</td>
-<td>linear</td>
-</tr>
-
-<tr>
-<td>X u(a);<br />X u = a;</td>
-<td>&nbsp;</td>
-<td>&nbsp;</td>
-<td>post: u == a.  Equivalent to: X u; u = a;</td>
-<td>linear</td>
-</tr>
-
-<tr>
-<td>(&amp;a)-&gt;~X();</td>
-<td>void</td>
-<td>&nbsp;</td>
-<td>dtor is applied to every element of a; all the memory is deallocated</td>
-<td>linear</td>
-</tr>
-
-<tr>
-<td>a.begin()</td>
-<td>iterator; const_iterator for constant a</td>
-<td>&nbsp;</td>
-<td>&nbsp;</td>
-<td>constant</td>
-</tr>
-
-<tr>
-<td>a.end()</td>
-<td>iterator; const_iterator for constant a</td>
-<td>&nbsp;</td>
-<td>&nbsp;</td>
-<td>constant</td>
-</tr>
-
-<tr>
-<td>a == b</td>
-<td>convertible to bool</td>
-<td>&nbsp;</td>
-<td>== is an equivalence relation.  a.size()==b.size() &amp;&amp;
-    equal(a.begin(),a.end(),b.begin())</td>
-<td>linear</td>
-</tr>
-
-<tr>
-<td>a != b</td>
-<td>convertible to bool</td>
-<td>&nbsp;</td>
-<td>equivalent to !(a==b)</td>
-<td>linear</td>
-</tr>
-
-<tr>
-<td>a.swap(b)</td>
-<td>void</td>
-<td>&nbsp;</td>
-<td>swap(a,b)</td>
-<td>may or may not have constant complexity</td>
-</tr>
-
-<tr>
-<td>r = a</td>
-<td>X&amp;</td>
-<td>&nbsp;</td>
-<td>r == a</td>
-<td>linear</td>
-</tr>
-
-<!-- a fifth column, "operation semantics," magically appears in the table
-     at this point... wtf?  -->
-<tr>
-<td>a.size()</td>
-<td>size_type</td>
-<td>a.end() - a.begin()</td>
-<td>&nbsp;</td>
-<td>may or may not have constant complexity</td>
-</tr>
-
-<tr>
-<td>a.max_size()</td>
-<td>size_type</td>
-<td>size() of the largest possible container</td>
-<td>&nbsp;</td>
-<td>may or may not have constant complexity</td>
-</tr>
-
-<tr>
-<td>a.empty()</td>
-<td>convertible to bool</td>
-<td>a.size() == 0</td>
-<td>&nbsp;</td>
-<td>constant</td>
-</tr>
-
-<tr>
-<td>a &lt; b</td>
-<td>convertible to bool</td>
-<td>lexographical_compare( a.begin, a.end(), b.begin(), b.end())</td>
-<td>pre: &lt; is defined for T and is a total ordering relation</td>
-<td>linear</td>
-</tr>
-
-<tr>
-<td>a &gt; b</td>
-<td>convertible to bool</td>
-<td>b &lt; a</td>
-<td>&nbsp;</td>
-<td>linear</td>
-</tr>
-
-<tr>
-<td>a &lt;= b</td>
-<td>convertible to bool</td>
-<td>!(a &gt; b)</td>
-<td>&nbsp;</td>
-<td>linear</td>
-</tr>
-
-<tr>
-<td>a &gt;= b</td>
-<td>convertible to bool</td>
-<td>!(a &lt; b)</td>
-<td>&nbsp;</td>
-<td>linear</td>
-</tr>
-</table title="Table 65"></p></a>
-
-
-<a name="66"><p>
-<table cellpadding="3" cellspacing="5" align="center" rules="rows" border="3"
-       cols="4" title="Table 66">
-<caption><h2>Table 66 --- Reversible Container Requirements</h2></caption>
-<tr><th colspan="4">
-If a container's iterator is bidirectional or random-access, then the
-container also meets these requirements.
-Deque, list, vector, map, multimap, set, and multiset are such containers.
-</th></tr>
-<tr>
-<td><strong>expression</strong></td>
-<td><strong>result type</strong></td>
-<td><strong>notes, pre-/post-conditions, assertions</strong></td>
-<td><strong>complexity</strong></td>
-</tr>
-
-<tr>
-<td>X::reverse_iterator</td>
-<td>iterator type pointing to T</td>
-<td>reverse_iterator&lt;iterator&gt;</td>
-<td>compile time</td>
-</tr>
-
-<tr>
-<td>X::const_reverse_iterator</td>
-<td>iterator type pointing to const T</td>
-<td>reverse_iterator&lt;const_iterator&gt;</td>
-<td>compile time</td>
-</tr>
-
-<tr>
-<td>a.rbegin()</td>
-<td>reverse_iterator; const_reverse_iterator for constant a</td>
-<td>reverse_iterator(end())</td>
-<td>constant</td>
-</tr>
-
-<tr>
-<td>a.rend()</td>
-<td>reverse_iterator; const_reverse_iterator for constant a</td>
-<td>reverse_iterator(begin())</td>
-<td>constant</td>
-</tr>
-</table title="Table 66"></p></a>
-
-
-<a name="67"><p>
-<table cellpadding="3" cellspacing="5" align="center" rules="rows" border="3"
-       cols="3" title="Table 67">
-<caption><h2>Table 67 --- Sequence Requirements</h2></caption>
-<tr><th colspan="3">
-These are in addition to the requirements of <a href="#65">containers</a>.
-Deque, list, and vector are such containers.
-</th></tr>
-<tr>
-<td><strong>expression</strong></td>
-<td><strong>result type</strong></td>
-<td><strong>notes, pre-/post-conditions, assertions</strong></td>
-</tr>
-
-<tr>
-<td>X(n,t)<br />X a(n,t)</td>
-<td>&nbsp;</td>
-<td>constructs a sequence with n copies of t<br />post: size() == n</td>
-</tr>
-
-<tr>
-<td>X(i,j)<br />X a(i,j)</td>
-<td>&nbsp;</td>
-<td>constructs a sequence equal to the range [i,j)<br />
-    post: size() == distance(i,j)</td>
-</tr>
-
-<tr>
-<td>a.insert(p,t)</td>
-<td>iterator (points to the inserted copy of t)</td>
-<td>inserts a copy of t before p</td>
-</tr>
-
-<tr>
-<td>a.insert(p,n,t)</td>
-<td>void</td>
-<td>inserts n copies of t before p</td>
-</tr>
-
-<tr>
-<td>a.insert(p,i,j)</td>
-<td>void</td>
-<td>inserts copies of elements in [i,j) before p<br />
-    pre: i, j are not iterators into a</td>
-</tr>
-
-<tr>
-<td>a.erase(q)</td>
-<td>iterator (points to the element following q (prior to erasure))</td>
-<td>erases the element pointed to by q</td>
-</tr>
-
-<tr>
-<td>a.erase(q1,q1)</td>
-<td>iterator (points to the element pointed to by q2 (prior to erasure))</td>
-<td>erases the elements in the range [q1,q2)</td>
-</tr>
-
-<tr>
-<td>a.clear()</td>
-<td>void</td>
-<td>erase(begin(),end())<br />post: size() == 0</td>
-</tr>
-</table title="Table 67"></p></a>
-
-
-<a name="68"><p>
-<table cellpadding="3" cellspacing="5" align="center" rules="rows" border="3"
-       cols="4" title="Table 68">
-<caption><h2>Table 68 --- Optional Sequence Operations</h2></caption>
-<tr><th colspan="4">
-These operations are only included in containers when the operation can be
-done in constant time.
-</th></tr>
-<tr>
-<td><strong>expression</strong></td>
-<td><strong>result type</strong></td>
-<td><strong>operational semantics</strong></td>
-<td><strong>container</strong></td>
-</tr>
-
-<tr>
-<td>a.front()</td>
-<td>reference; const_reference for constant a</td>
-<td>*a.begin()</td>
-<td>vector, list, deque</td>
-</tr>
-
-<tr>
-<td>a.back()</td>
-<td>reference; const_reference for constant a</td>
-<td>*--a.end()</td>
-<td>vector, list, deque</td>
-</tr>
-
-<tr>
-<td>a.push_front(x)</td>
-<td>void</td>
-<td>a.insert(a.begin(),x)</td>
-<td>list, deque</td>
-</tr>
-
-<tr>
-<td>a.push_back(x)</td>
-<td>void</td>
-<td>a.insert(a.end(),x)</td>
-<td>vector, list, deque</td>
-</tr>
-
-<tr>
-<td>a.pop_front()</td>
-<td>void</td>
-<td>a.erase(a.begin())</td>
-<td>list, deque</td>
-</tr>
-
-<tr>
-<td>a.pop_back()</td>
-<td>void</td>
-<td>a.erase(--a.end())</td>
-<td>vector, list, deque</td>
-</tr>
-
-<tr>
-<td>a[n]</td>
-<td>reference; const_reference for constant a</td>
-<td>*(a.begin() + n)</td>
-<td>vector, deque</td>
-</tr>
-
-<tr>
-<td>a.at(n)</td>
-<td>reference; const_reference for constant a</td>
-<td>*(a.begin() + n)<br />throws out_of_range if n&gt;=a.size()</td>
-<td>vector, deque</td>
-</tr>
-</table title="Table 68"></p></a>
-
-
-<a name="69"><p>
-<table cellpadding="3" cellspacing="5" align="center" rules="rows" border="3"
-       cols="4" title="Table 69">
-<caption><h2>Table 69 --- Associative Container Requirements</h2></caption>
-<tr><th colspan="4">
-These are in addition to the requirements of <a href="#65">containers</a>.
-Map, multimap, set, and multiset are such containers.  An associative
-container supports <em>unique keys</em> (and is written as
-<code>a_uniq</code> instead of <code>a</code>) if it may contain at most
-one element for each key.  Otherwise it supports <em>equivalent keys</em>
-(and is written <code>a_eq</code>).  Examples of the former are set and map,
-examples of the latter are multiset and multimap.
-</th></tr>
-<tr>
-<td><strong>expression</strong></td>
-<td><strong>result type</strong></td>
-<td><strong>notes, pre-/post-conditions, assertions</strong></td>
-<td><strong>complexity</strong></td>
-</tr>
-
-<tr>
-<td>X::key_type</td>
-<td>Key</td>
-<td>Key is Assignable</td>
-<td>compile time</td>
-</tr>
-
-<tr>
-<td>X::key_compare</td>
-<td>Compare</td>
-<td>defaults to less&lt;key_type&gt;</td>
-<td>compile time</td>
-</tr>
-
-<tr>
-<td>X::value_compare</td>
-<td>a binary predicate type</td>
-<td>same as key_compare for set and multiset; an ordering relation on
-    pairs induced by the first component (Key) for map and multimap</td>
-<td>compile time</td>
-</tr>
-
-<tr>
-<td>X(c)<br />X a(c)</td>
-<td>&nbsp;</td>
-<td>constructs an empty container which uses c as a comparison object</td>
-<td>constant</td>
-</tr>
-
-<tr>
-<td>X()<br />X a</td>
-<td>&nbsp;</td>
-<td>constructs an empty container using Compare() as a comparison object</td>
-<td>constant</td>
-</tr>
-
-<tr>
-<td>X(i,j,c)<br />X a(i,j,c)</td>
-<td>&nbsp;</td>
-<td>constructs an empty container and inserts elements from the range [i,j)
-    into it; uses c as a comparison object</td>
-<td>NlogN in general where N is distance(i,j); linear if [i,j) is
-    sorted with value_comp()</td>
-</tr>
-
-<tr>
-<td>X(i,j)<br />X a(i,j)</td>
-<td>&nbsp;</td>
-<td>same as previous, but uses Compare() as a comparison object</td>
-<td>same as previous</td>
-</tr>
-
-<tr>
-<td>a.key_comp()</td>
-<td>X::key_compare</td>
-<td>returns the comparison object out of which a was constructed</td>
-<td>constant</td>
-</tr>
-
-<tr>
-<td>a.value_comp()</td>
-<td>X::value_compare</td>
-<td>returns an object constructed out of the comparison object</td>
-<td>constant</td>
-</tr>
-
-<tr>
-<td>a_uniq.insert(t)</td>
-<td>pair&lt;iterator,bool&gt;</td>
-<td>&quot;Inserts t if and only if there is no element in the container with
-    key equivalent to the key of t. The bool component of the returned pair
-    is true -iff- the insertion took place, and the iterator component of
-    the pair points to the element with key equivalent to the key of
-    t.&quot;</td> <!-- DR 316 -->
-<td>logarithmic</td>
-</tr>
-
-<tr>
-<td>a_eq.insert(t)</td>
-<td>iterator</td>
-<td>inserts t, returns the iterator pointing to the inserted element</td>
-<td>logarithmic</td>
-</tr>
-
-<tr>
-<td>a.insert(p,t)</td>
-<td>iterator</td>
-<td>possibly inserts t (depending on whether a_uniq or a_eq); returns iterator
-    pointing to the element with key equivalent to the key of t; iterator p
-    is a hint pointing to where the insert should start to search</td>
-<td>logarithmic in general, amortized constant if t is inserted right
-    after p<br />
-    <strong>[but see DR 233 and <a href="
-    http://gcc.gnu.org/onlinedocs/libstdc++/23_containers/howto.html#4">our
-    specific notes</a>]</strong></td>
-</tr>
-
-<tr>
-<td>a.insert(i,j)</td>
-<td>void</td>
-<td>pre: i, j are not iterators into a.  possibly inserts each element from
-    the range [i,j) (depending on whether a_uniq or a_eq)</td>
-<td>Nlog(size()+N) where N is distance(i,j) in general</td> <!-- DR 264 -->
-</tr>
-
-<tr>
-<td>a.erase(k)</td>
-<td>size_type</td>
-<td>erases all elements with key equivalent to k; returns number of erased
-    elements</td>
-<td>log(size()) + count(k)</td>
-</tr>
-
-<tr>
-<td>a.erase(q)</td>
-<td>void</td>
-<td>erases the element pointed to by q</td>
-<td>amortized constant</td>
-</tr>
-
-<tr>
-<td>a.erase(q1,q2)</td>
-<td>void</td>
-<td>erases all the elements in the range [q1,q2)</td>
-<td>log(size()) + distance(q1,q2)</td>
-</tr>
-
-<tr>
-<td>a.clear()</td>
-<td>void</td>
-<td>erases everthing; post: size() == 0</td>
-<td>linear</td> <!-- DR 224 -->
-</tr>
-
-<tr>
-<td>a.find(k)</td>
-<td>iterator; const_iterator for constant a</td>
-<td>returns iterator pointing to element with key equivalent to k, or
-    a.end() if no such element found</td>
-<td>logarithmic</td>
-</tr>
-
-<tr>
-<td>a.count(k)</td>
-<td>size_type</td>
-<td>returns number of elements with key equivalent to k</td>
-<td>log(size()) + count(k)</td>
-</tr>
-
-<tr>
-<td>a.lower_bound(k)</td>
-<td>iterator; const_iterator for constant a</td>
-<td>returns iterator pointing to the first element with key not less than k</td>
-<td>logarithmic</td>
-</tr>
-
-<tr>
-<td>a.upper_bound(k)</td>
-<td>iterator; const_iterator for constant a</td>
-<td>returns iterator pointing to the first element with key greater than k</td>
-<td>logarithmic</td>
-</tr>
-
-<tr>
-<td>a.equal_range(k)</td>
-<td>pair&lt;iterator,iterator&gt;;
-    pair&lt;const_iterator, const_iterator&gt; for constant a</td>
-<td>equivalent to make_pair(a.lower_bound(k), a.upper_bound(k))</td>
-<td>logarithmic</td>
-</tr>
-</table title="Table 69"></p></a>
-
-
-<hr />
-<p class="smallertext"><em>
-See <a href="mainpage.html">mainpage.html</a> for copying conditions.
-See <a href="http://gcc.gnu.org/libstdc++/">the libstdc++-v3 homepage</a>
-for more information.
-</em></p>
-
-
-</body>
-</html>
-