1 <?xml version=
"1.0" encoding=
"UTF-8" standalone=
"no"?>
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"><head><meta http-equiv=
"Content-Type" content=
"text/html; charset=UTF-8" /><title>Deprecated HP/SGI
</title><meta name=
"generator" content=
"DocBook XSL Stylesheets V1.75.2" /><meta name=
"keywords" content=
" ISO C++ , library " /><link rel=
"home" href=
"../spine.html" title=
"The GNU C++ Library Documentation" /><link rel=
"up" href=
"ext_containers.html" title=
"Chapter 21. Containers" /><link rel=
"prev" href=
"bk01pt03ch21s02.html" title=
"HP/SGI" /><link rel=
"next" href=
"ext_utilities.html" title=
"Chapter 22. Utilities" /></head><body><div class=
"navheader"><table width=
"100%" summary=
"Navigation header"><tr><th colspan=
"3" align=
"center">Deprecated HP/SGI
</th></tr><tr><td width=
"20%" align=
"left"><a accesskey=
"p" href=
"bk01pt03ch21s02.html">Prev
</a> </td><th width=
"60%" align=
"center">Chapter
21. Containers
</th><td width=
"20%" align=
"right"> <a accesskey=
"n" href=
"ext_utilities.html">Next
</a></td></tr></table><hr /></div><div class=
"sect1" title=
"Deprecated HP/SGI"><div class=
"titlepage"><div><div><h2 class=
"title" style=
"clear: both"><a id=
"manual.ext.containers.deprecated_sgi"></a>Deprecated HP/SGI
</h2></div></div></div><p>
4 The SGI hashing classes
<code class=
"classname">hash_set
</code> and
5 <code class=
"classname">hash_set
</code> have been deprecated by the
6 unordered_set, unordered_multiset, unordered_map,
7 unordered_multimap containers in TR1 and the upcoming C++
0x, and
8 may be removed in future releases.
9 </p><p>The SGI headers
</p><pre class=
"programlisting">
15 </pre><p>are all here;
16 <code class=
"code"><hash_map
></code> and
<code class=
"code"><hash_set
></code>
17 are deprecated but available as backwards-compatible extensions,
18 as discussed further below.
<code class=
"code"><rope
></code> is the
19 SGI specialization for large strings (
"rope,"
20 "large strings," get it? Love that geeky humor.)
21 <code class=
"code"><slist
></code> is a singly-linked list, for when the
22 doubly-linked
<code class=
"code">list
<></code> is too much space
23 overhead, and
<code class=
"code"><rb_tree
></code> exposes the red-black
24 tree classes used in the implementation of the standard maps and
26 </p><p>Each of the associative containers map, multimap, set, and multiset
27 have a counterpart which uses a
28 <a class=
"ulink" href=
"http://www.sgi.com/tech/stl/HashFunction.html" target=
"_top">hashing
29 function
</a> to do the arranging, instead of a strict weak ordering
30 function. The classes take as one of their template parameters a
31 function object that will return the hash value; by default, an
33 <a class=
"ulink" href=
"http://www.sgi.com/tech/stl/hash.html" target=
"_top">hash
</a>.
34 You should specialize this functor for your class, or define your own,
35 before trying to use one of the hashing classes.
36 </p><p>The hashing classes support all the usual associative container
37 functions, as well as some extra constructors specifying the number
39 </p><p>Why would you want to use a hashing class instead of the
40 <span class=
"quote">“
<span class=
"quote">normal
</span>”
</span>implementations? Matt Austern writes:
41 </p><div class=
"blockquote"><blockquote class=
"blockquote"><p>
42 <span class=
"emphasis"><em>[W]ith a well chosen hash function, hash tables
43 generally provide much better average-case performance than
44 binary search trees, and much worse worst-case performance. So
45 if your implementation has hash_map, if you don't mind using
46 nonstandard components, and if you aren't scared about the
47 possibility of pathological cases, you'll probably get better
48 performance from hash_map.
50 </p></blockquote></div></div><div class=
"navfooter"><hr /><table width=
"100%" summary=
"Navigation footer"><tr><td width=
"40%" align=
"left"><a accesskey=
"p" href=
"bk01pt03ch21s02.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">HP/SGI
</td><td width=
"20%" align=
"center"><a accesskey=
"h" href=
"../spine.html">Home
</a></td><td width=
"40%" align=
"right" valign=
"top"> Chapter
22. Utilities
</td></tr></table></div></body></html>