e1be0340a29b8e066c724887a7ca9f991aeb6fa1
[platform/upstream/gcc48.git] / libstdc++-v3 / doc / html / manual / ext_containers.html
1 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml"><head><title>Chapter 23. HP/SGI Extensions</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      runtime&#10;    , &#10;      library&#10;    "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="Part III.  Extensions"/><link rel="prev" href="policy_data_structures_biblio.html" title="Acknowledgments"/><link rel="next" href="bk01pt03ch23s02.html" title="Deprecated"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 23. HP/SGI Extensions</th></tr><tr><td align="left"><a accesskey="p" href="policy_data_structures_biblio.html">Prev</a> </td><th width="60%" align="center">Part III. 
4   Extensions
5   
6 </th><td align="right"> <a accesskey="n" href="bk01pt03ch23s02.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 23. HP/SGI Extensions"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.containers"/>Chapter 23. HP/SGI Extensions</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="ext_containers.html#manual.ext.containers.sgi">Backwards Compatibility</a></span></dt><dt><span class="section"><a href="bk01pt03ch23s02.html">Deprecated</a></span></dt></dl></div><div class="section" title="Backwards Compatibility"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.containers.sgi"/>Backwards Compatibility</h2></div></div></div><p>A few extensions and nods to backwards-compatibility have
7     been made with containers.  Those dealing with older SGI-style
8     allocators are dealt with elsewhere.  The remaining ones all deal
9     with bits:
10     </p><p>The old pre-standard <code class="code">bit_vector</code> class is
11     present for backwards compatibility.  It is simply a typedef for
12     the <code class="code">vector&lt;bool&gt;</code> specialization.
13     </p><p>The <code class="code">bitset</code> class has a number of extensions, described in the
14    rest of this item.  First, we'll mention that this implementation of
15    <code class="code">bitset&lt;N&gt;</code> is specialized for cases where N number of
16    bits will fit into a single word of storage.  If your choice of N is
17    within that range (&lt;=32 on i686-pc-linux-gnu, for example), then all
18    of the operations will be faster.
19 </p><p>There are
20    versions of single-bit test, set, reset, and flip member functions which
21    do no range-checking.  If we call them member functions of an instantiation
22    of <code class="code">bitset&lt;N&gt;</code>, then their names and signatures are:
23 </p><pre class="programlisting">
24    bitset&lt;N&gt;&amp;   _Unchecked_set   (size_t pos);
25    bitset&lt;N&gt;&amp;   _Unchecked_set   (size_t pos, int val);
26    bitset&lt;N&gt;&amp;   _Unchecked_reset (size_t pos);
27    bitset&lt;N&gt;&amp;   _Unchecked_flip  (size_t pos);
28    bool         _Unchecked_test  (size_t pos);
29    </pre><p>Note that these may in fact be removed in the future, although we have
30    no present plans to do so (and there doesn't seem to be any immediate
31    reason to).
32 </p><p>The member function <code class="code">operator[]</code> on a const bitset returns
33    a bool, and for a non-const bitset returns a <code class="code">reference</code> (a
34    nested type).  No range-checking is done on the index argument, in keeping
35    with other containers' <code class="code">operator[]</code> requirements.
36 </p><p>Finally, two additional searching functions have been added.  They return
37    the index of the first "on" bit, and the index of the first
38    "on" bit that is after <code class="code">prev</code>, respectively:
39 </p><pre class="programlisting">
40    size_t _Find_first() const;
41    size_t _Find_next (size_t prev) const;</pre><p>The same caveat given for the _Unchecked_* functions applies here also.
42 </p></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="policy_data_structures_biblio.html">Prev</a> </td><td align="center"><a accesskey="u" href="extensions.html">Up</a></td><td align="right"> <a accesskey="n" href="bk01pt03ch23s02.html">Next</a></td></tr><tr><td align="left" valign="top">Acknowledgments </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Deprecated</td></tr></table></div></body></html>