<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Deprecated</title><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="ext_containers.html" title="Chapter 22. HP/SGI Extensions" /><link rel="prev" href="ext_containers.html" title="Chapter 22. HP/SGI Extensions" /><link rel="next" href="ext_utilities.html" title="Chapter 23. Utilities" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Deprecated</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ext_containers.html">Prev</a> </td><th width="60%" align="center">Chapter 22. HP/SGI Extensions</th><td width="20%" align="right"> <a accesskey="n" href="ext_utilities.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.containers.deprecated_sgi"></a>Deprecated</h2></div></div></div><p>
     The SGI hashing classes <code class="classname">hash_set</code> and
     <code class="classname">hash_set</code> have been deprecated by the
     unordered_set, unordered_multiset, unordered_map,
     unordered_multimap containers in TR1 and C++11, and
     may be removed in future releases.
   </p><p>The SGI headers</p><pre class="programlisting">
     &lt;hash_map&gt;
     &lt;hash_set&gt;
     &lt;rope&gt;
     &lt;slist&gt;
     &lt;rb_tree&gt;
</pre><p>are all here;
      <code class="filename">&lt;backwards/hash_map&gt;</code> and
      <code class="filename">&lt;backwards/hash_set&gt;</code>
      are deprecated but available as backwards-compatible extensions,
      as discussed further below.
      <code class="filename">&lt;ext/rope&gt;</code> is the SGI
      specialization for large strings ("rope," "large strings," get it? Love
      that geeky humor.)
      <code class="filename">&lt;ext/slist&gt;</code> (superseded in
      C++11 by <code class="filename">&lt;forward_list&gt;</code>)
      is a singly-linked list, for when the doubly-linked <code class="code">list&lt;&gt;</code>
      is too much space overhead, and
      <code class="filename">&lt;ext/rb_tree&gt;</code> exposes the
      red-black tree classes used in the implementation of the standard maps
      and sets.
   </p><p>Each of the associative containers map, multimap, set, and multiset
      have a counterpart which uses a
      <a class="link" href="https://web.archive.org/web/20171230172024/http://www.sgi.com/tech/stl/HashFunction.html" target="_top">hashing
      function</a> to do the arranging, instead of a strict weak ordering
      function.  The classes take as one of their template parameters a
      function object that will return the hash value; by default, an
      instantiation of
      <a class="link" href="https://web.archive.org/web/20171230172200/http://www.sgi.com/tech/stl/hash.html" target="_top">hash</a>.
      You should specialize this functor for your class, or define your own,
      before trying to use one of the hashing classes.
   </p><p>The hashing classes support all the usual associative container
      functions, as well as some extra constructors specifying the number
      of buckets, etc.
   </p><p>Why would you want to use a hashing class instead of the
      <span class="quote">“<span class="quote">normal</span>”</span>implementations?  Matt Austern writes:
   </p><div class="blockquote"><blockquote class="blockquote"><p>
       <span class="emphasis"><em>[W]ith a well chosen hash function, hash tables
       generally provide much better average-case performance than
       binary search trees, and much worse worst-case performance.  So
       if your implementation has hash_map, if you don't mind using
       nonstandard components, and if you aren't scared about the
       possibility of pathological cases, you'll probably get better
       performance from hash_map.
     </em></span>
     </p></blockquote></div><p>
      The deprecated hash tables are superseded by the standard unordered
      associative containers defined in the ISO C++ 2011 standard in the
      headers <code class="filename">&lt;unordered_map&gt;</code>
      and <code class="filename">&lt;unordered_set&gt;</code>.
   </p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ext_containers.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ext_containers.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ext_utilities.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 22. HP/SGI Extensions </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 23. Utilities</td></tr></table></div></body></html>