<!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" xml:lang="en" lang="en">
<head>
  <meta name="generator" content=
  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />

  <title>gp_hash_table Interface</title>
  <meta http-equiv="Content-Type" content=
  "text/html; charset=us-ascii" />
  </head>

<body>
  <div id="page">
    <h1><tt>gp_hash_table</tt> Interface</h1>

    <p>A concrete general-probing hash-based associative
    container.</p>

    <p>Defined in: <a href=
    "../../../../include/ext/pb_ds/assoc_container.hpp"><tt>assoc_container.hpp</tt></a></p>

    <h2><a name="link1" id="link1">Template Parameters</a></h2>

    <table class="c1" width="100%" border="1" summary=
    "Template Parameters">
      <tr>
        <td width="20%" align="left"><b>Parameter</b></td>

        <td width="50%" align="left"><b>Description</b></td>

        <td width="30%" align="left"><b>Default Value</b></td>
      </tr>

      <tr>
        <td>
          <pre>
<a name="Key2501" id="Key2501"><b>typename</b> Key</a>
</pre>
        </td>

        <td>
          <p>Key type.</p>
        </td>

        <td>-</td>
      </tr>

      <tr>
        <td>
          <pre>
<a name="Mapped318655" id="Mapped318655"><b>typename</b> Mapped</a>
</pre>
        </td>

        <td>
          <p>Mapped type.</p>
        </td>

        <td>-</td>
      </tr>

      <tr>
        <td>
          <pre>
<a name="Hash_Fn1515835" id=
"Hash_Fn1515835"><b>class</b> Hash_Fn </a>
</pre>
        </td>

        <td>
          <p>Hash functor.</p>
        </td>

        <td>
          <pre>
__gnu_cxx::hash&lt;<a href="#Key2501"><tt>Key</tt></a>&gt;
</pre>if using gcc;
          <pre>
stdext::hash_value&lt;<a href="#Key2501"><tt>Key</tt></a>&gt;
</pre>if using Visual C++ .net
        </td>
      </tr>

      <tr>
        <td>
          <pre>
<a name="Eq_Fn60085" id="Eq_Fn60085"><b>class</b> Eq_Fn </a>
</pre>
        </td>

        <td>
          <p>Equivalence functor.</p>
        </td>

        <td>
          <pre>
std::equal_to&lt;<a href="#Key2501"><tt>Key</tt></a>&gt;
</pre>
        </td>
      </tr>

      <tr>
        <td>
          <pre>
<a name="Comb_Probe_Fn1603930855" id=
"Comb_Probe_Fn1603930855"><b>class</b> Comb_Probe_Fn </a>
</pre>
        </td>

        <td>
          <p>Combining probe functor.</p>

          <p>If <a href="#Hash_Fn1515835"><tt>Hash_Fn</tt></a> is
          <a href="null_hash_fn.html"><span class=
          "c2"><tt>null_hash_fn</tt></span></a>, and <a href=
          "#Probe_Fn8454835"><tt>Probe_Fn</tt></a> is <a href=
          "null_probe_fn.html"><span class=
          "c2"><tt>null_probe_fn</tt></span></a>, then this is the
          ranged-probe functor; otherwise, this is the
          range-hashing functor.</p>

          <p>(See <a href=
          "hash_based_containers.html#hash_policies">Design::Hash-Based
          Containers::Hash Policies</a>.)</p>
        </td>

        <td><a href="direct_mask_range_hashing.html"><span class=
        "c2"><tt>direct_mask_range_hashing</tt></span></a></td>
      </tr>

      <tr>
        <td>
          <pre>
<a name="Probe_Fn8454835" id=
"Probe_Fn8454835"><b>class</b> Probe_Fn </a>
</pre>
        </td>

        <td>
          <p>Probe functor.</p>
        </td>

        <td>
          If <tt><a href=
          "#Comb_Probe_Fn1603930855"><tt>Comb_Probe_Fn</tt></a></tt>
          is <a href="direct_mask_range_hashing.html"><span class=
          "c2"><tt>direct_mask_range_hashing</tt></span></a>, then
          <pre>
<a href="linear_probe_fn.html"><span class=
"c2"><tt>linear_probe_fn</tt></span></a>&lt;
  <b>typename</b> <a href=
"#Comb_Probe_Fn1603930855"><tt>Comb_Probe_Fn</tt></a>::size_type&gt;
</pre>otherwise,
          <pre>
<a href="quadratic_probe_fn.html"><span class=
"c2"><tt>quadratic_probe_fn</tt></span></a>&lt;
  <b>typename</b> <a href=
"#Comb_Probe_Fn1603930855"><tt>Comb_Probe_Fn</tt></a>::size_type&gt;
</pre>
        </td>
      </tr>

      <tr>
        <td>
          <pre>
<a name="Resize_Policy566860465" id=
"Resize_Policy566860465"><b>class</b> Resize_Policy </a>
</pre>
        </td>

        <td>
          <p>Resize policy.</p>
        </td>

        <td>
          If <tt><a href=
          "#Comb_Probe_Fn1603930855"><tt>Comb_Probe_Fn</tt></a></tt>
          is <tt><a href=
          "direct_mask_range_hashing.html"><span class=
          "c2"><tt>direct_mask_range_hashing</tt></span></a></tt>,
          then
          <pre>
<a href="hash_standard_resize_policy.html"><span class=
"c2"><tt>hash_standard_resize_policy</tt></span></a>&lt;
  <a href="hash_exponential_size_policy.html"><span class=
"c2"><tt>hash_exponential_size_policy</tt></span></a>&lt;
    <b>typename</b> <a href=
"#Comb_Probe_Fn1603930855"><tt>Comb_Probe_Fn</tt></a>::size_type&gt;,
  <a href="hash_load_check_resize_trigger.html"><span class=
"c2"><tt>hash_load_check_resize_trigger</tt></span></a>&lt;
    <b>typename</b> <a href=
"#Comb_Probe_Fn1603930855"><tt>Comb_Probe_Fn</tt></a>::size_type&gt;,
  <b>false</b>,
  <b>typename</b> <a href=
"#Comb_Probe_Fn1603930855"><tt>Comb_Probe_Fn</tt></a>::size_type&gt;
</pre>otherwise,
          <pre>
<a href="hash_standard_resize_policy.html"><span class=
"c2"><tt>hash_standard_resize_policy</tt></span></a>&lt;
  <a href="hash_exponential_size_policy.html"><span class=
"c2"><tt>hash_exponential_size_policy</tt></span></a>&lt;
    <b>typename</b> <a href=
"#Comb_Probe_Fn1603930855"><tt>Comb_Probe_Fn</tt></a>::size_type&gt;,
  <a href="hash_load_check_resize_trigger.html"><span class=
"c2"><tt>hash_load_check_resize_trigger</tt></span></a>&lt;
    <b>typename</b> <a href=
"#Comb_Probe_Fn1603930855"><tt>Comb_Probe_Fn</tt></a>::size_type&gt;,
  <b>false</b>,
  <b>typename</b> <a href=
"#Comb_Probe_Fn1603930855"><tt>Comb_Probe_Fn</tt></a>::size_type&gt;
</pre>
        </td>
      </tr>

      <tr>
        <td>
          <pre>
<a name="Store_Hash218262104" id=
"Store_Hash218262104"><b>bool</b> Store_Hash </a>
</pre>
        </td>

        <td>
          <p>Indicates whether the hash value will be stored along
          with each key.</p>

          <p>If <tt><a href=
          "#hash_fn2015995"><tt>hash_fn</tt></a></tt> is <a href=
          "null_hash_fn.html"><span class=
          "c2"><tt>null_hash_fn</tt></span></a>, then the container
          will not compile if this value is
          <tt><b>true</b></tt></p>
        </td>

        <td>
          <pre>
<tt><b>false</b></tt>
</pre>
        </td>
      </tr>

      <tr>
        <td>
          <pre>
<a name="Allocator35940069" id=
"Allocator35940069"><b>class</b> Allocator </a>
</pre>
        </td>

        <td>
          <p>Allocator type.</p>
        </td>

        <td>
          <pre>
std::allocator&lt;<b>char</b>&gt;
</pre>
        </td>
      </tr>
    </table>

    <h2><a name="link2" id="link2">Base Classes</a></h2>

    <table class="c1" width="100%" border="1" summary="Bases">
      <tr>
        <td width="80%" align="left"><b>Class</b></td>

        <td width="20%" align="left"><b>Derivation Type</b></td>
      </tr>

      <tr>
        <td>
          <pre>
<a href="basic_hash_table.html"><span class=
"c2"><tt>basic_hash_table</tt></span></a>
</pre>
        </td>

        <td>
          <p>public</p>
        </td>
      </tr>
    </table>

    <h2><a name="link3" id="link3">Public Types and
    Constants</a></h2>

    <h3><a name="link4" id="link4">Policy Definitions</a></h3>

    <table class="c1" width="100%" border="1" summary="Types">
      <tr>
        <td width="30%" align="left"><b>Type</b></td>

        <td width="55%" align="left"><b>Definition</b></td>

        <td width="15%" align="left"><b>Description</b></td>
      </tr>

      <tr>
        <td>
          <pre>
<a name="hash_fn2015995" id="hash_fn2015995">hash_fn</a>
</pre>
        </td>

        <td>
          <pre>
<a href="#Hash_Fn1515835"><tt>Hash_Fn</tt></a>
</pre>
        </td>

        <td>
          <p>Hash functor type.</p>
        </td>
      </tr>

      <tr>
        <td>
          <pre>
<a name="eq_fn80245" id="eq_fn80245">eq_fn</a>
</pre>
        </td>

        <td>
          <pre>
<a href="#Eq_Fn60085"><tt>Eq_Fn</tt></a>
</pre>
        </td>

        <td>
          <p>Equivalence functor type.</p>
        </td>
      </tr>

      <tr>
        <td>
          <pre>
<a name="comb_probe_fn828996423" id=
"comb_probe_fn828996423">comb_probe_fn</a>
</pre>
        </td>

        <td>
          <pre>
<a href="#Comb_Probe_Fn1603930855"><tt>Comb_Probe_Fn</tt></a>
</pre>
        </td>

        <td>
          <p>Combining probe functor type.</p>
        </td>
      </tr>

      <tr>
        <td>
          <pre>
<a name="probe_fn10954995" id="probe_fn10954995">probe_fn</a>
</pre>
        </td>

        <td>
          <pre>
<a href="#Probe_Fn8454835"><tt>Probe_Fn</tt></a>
</pre>
        </td>

        <td>
          <p>Probe functor type.</p>
        </td>
      </tr>

      <tr>
        <td>
          <pre>
<a name="resize_policy4084493169" id=
"resize_policy4084493169">resize_policy</a>
</pre>
        </td>

        <td>
          <pre>
<a href="#Resize_Policy566860465"><tt>Resize_Policy</tt></a>
</pre>
        </td>

        <td>
          <p>Resize policy type.</p>
        </td>
      </tr>
    </table>

    <h2><a name="link5" id="link5">Public Methods</a></h2>

    <h3><a name="link6" id="link6">Constructors, Destructor, and
    Related</a></h3>

    <table class="c1" width="100%" border="1" summary="Methods">
      <tr>
        <td width="45%" align="left"><b>Method</b></td>

        <td width="55%" align="left"><b>Description</b></td>
      </tr>

      <tr>
        <td>
          <pre>
  gp_hash_table
  ()
</pre>
        </td>

        <td>
          <p>Default constructor.</p>
        </td>
      </tr>

      <tr>
        <td>
          <pre>
  gp_hash_table
  (<b>const</b> <a href=
"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn)
</pre>
        </td>

        <td>
          <p>Constructor taking some policy objects. <span class=
          "c1"><tt>r_hash_fn</tt></span> will be copied by the
          <a href="#hash_fn2015995"><tt>hash_fn</tt></a> object of
          the container object.</p>
        </td>
      </tr>

      <tr>
        <td>
          <pre>
  gp_hash_table
  (<b>const</b> <a href=
"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn, 
    <b>const</b> <a href=
"#eq_fn80245"><tt>eq_fn</tt></a> &amp;r_eq_fn)
</pre>
        </td>

        <td>
          <p>Constructor taking some policy objects. <span class=
          "c1"><tt>r_hash_fn</tt></span> will be copied by the
          <a href="#hash_fn2015995"><tt>hash_fn</tt></a> object of
          the container object, and <span class=
          "c1"><tt>r_eq_fn</tt></span> will be copied by the
          <a href="#eq_fn80245"><tt>eq_fn</tt></a> object of the
          container object.</p>
        </td>
      </tr>

      <tr>
        <td>
          <pre>
  gp_hash_table
  (<b>const</b> <a href=
"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn, 
    <b>const</b> <a href=
"#eq_fn80245"><tt>eq_fn</tt></a> &amp;r_eq_fn, 
    <b>const</b> <a href=
"#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a> &amp;r_comb_probe_fn)
</pre>
        </td>

        <td>
          <p>Constructor taking some policy objects. <span class=
          "c1"><tt>r_hash_fn</tt></span> will be copied by the
          <a href="#hash_fn2015995"><tt>hash_fn</tt></a> object of
          the container object, <span class=
          "c1"><tt>r_eq_fn</tt></span> will be copied by the
          <a href="#eq_fn80245"><tt>eq_fn</tt></a> object of the
          container object, and <span class=
          "c1"><tt>r_comb_probe_fn</tt></span> will be copied by
          the <a href=
          "#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a>
          object of the container object.</p>
        </td>
      </tr>

      <tr>
        <td>
          <pre>
  gp_hash_table
  (<b>const</b> <a href=
"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn, 
    <b>const</b> <a href=
"#eq_fn80245"><tt>eq_fn</tt></a> &amp;r_eq_fn, 
    <b>const</b> <a href=
"#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a> &amp;r_comb_probe_fn,
    <b>const</b> <a href=
"#probe_fn10954995"><tt>probe_fn</tt></a> &amp;r_probe_fn)
</pre>
        </td>

        <td>
          <p>Constructor taking some policy objects. <span class=
          "c1"><tt>r_hash_fn</tt></span> will be copied by the
          <a href="#hash_fn2015995"><tt>hash_fn</tt></a> object of
          the container object, <span class=
          "c1"><tt>r_eq_fn</tt></span> will be copied by the
          <a href="#eq_fn80245"><tt>eq_fn</tt></a> object of the
          container object, <span class=
          "c1"><tt>r_comb_probe_fn</tt></span> will be copied by
          the <a href=
          "#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a>
          object of the container object, and <span class=
          "c1"><tt>r_probe_fn</tt></span> will be copied by the
          <a href="#probe_fn10954995"><tt>probe_fn</tt></a> object
          of the container object.</p>
        </td>
      </tr>

      <tr>
        <td>
          <pre>
  gp_hash_table
  (<b>const</b> <a href=
"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn, 
    <b>const</b> <a href=
"#eq_fn80245"><tt>eq_fn</tt></a> &amp;r_eq_fn, 
    <b>const</b> <a href=
"#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a> &amp;r_comb_probe_fn, 
    <b>const</b> <a href=
"#probe_fn10954995"><tt>probe_fn</tt></a> &amp;r_probe_fn,
    <b>const</b> <a href=
"#resize_policy4084493169"><tt>resize_policy</tt></a> &amp;r_resize_policy)
</pre>
        </td>

        <td>
          <p>Constructor taking some policy objects. <span class=
          "c1"><tt>r_hash_fn</tt></span> will be copied by the
          <a href="#hash_fn2015995"><tt>hash_fn</tt></a> object of
          the container object, <span class=
          "c1"><tt>r_eq_fn</tt></span> will be copied by the
          <a href="#eq_fn80245"><tt>eq_fn</tt></a> object of the
          container object, <span class=
          "c1"><tt>r_comb_probe_fn</tt></span> will be copied by
          the <a href=
          "#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a>
          object of the container object, <span class=
          "c1"><tt>r_probe_fn</tt></span> will be copied by the
          <a href="#probe_fn10954995"><tt>probe_fn</tt></a> object
          of the container object, and <span class=
          "c1"><tt>r_resize_policy</tt></span> will be copied by
          the <a href=
          "#Resize_Policy566860465"><tt>Resize_Policy</tt></a>
          object of the container object.</p>
        </td>
      </tr>

      <tr>
        <td>
          <pre>
<b>template</b>&lt;
    <b>class</b> It&gt;
  gp_hash_table
  (It first_it, 
    It last_it)
</pre>
        </td>

        <td>
          <p>Constructor taking iterators to a range of
          value_types. The value_types between <span class=
          "c1"><tt>first_it</tt></span> and <span class=
          "c1"><tt>last_it</tt></span> will be inserted into the
          container object.</p>
        </td>
      </tr>

      <tr>
        <td>
          <pre>
<b>template</b>&lt;
    <b>class</b> It&gt;
  gp_hash_table
  (It first_it, 
    It last_it,
    <b>const</b> <a href=
"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn)
</pre>
        </td>

        <td>
          <p>Constructor taking iterators to a range of value_types
          and some policy objects. The value_types between
          <span class="c1"><tt>first_it</tt></span> and
          <span class="c1"><tt>last_it</tt></span> will be inserted
          into the container object. <span class=
          "c1"><tt>r_hash_fn</tt></span> will be copied by the
          <a href="#hash_fn2015995"><tt>hash_fn</tt></a> object of
          the container object.</p>
        </td>
      </tr>

      <tr>
        <td>
          <pre>
<b>template</b>&lt;
    <b>class</b> It&gt;
  gp_hash_table
  (It first_it, 
    It last_it,
    <b>const</b> <a href=
"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn, 
    <b>const</b> <a href=
"#eq_fn80245"><tt>eq_fn</tt></a> &amp;r_eq_fn)
</pre>
        </td>

        <td>
          <p>Constructor taking iterators to a range of value_types
          and some policy objects. The value_types between
          <span class="c1"><tt>first_it</tt></span> and
          <span class="c1"><tt>last_it</tt></span> will be inserted
          into the container object. <span class=
          "c1"><tt>r_hash_fn</tt></span> will be copied by the
          <a href="#hash_fn2015995"><tt>hash_fn</tt></a> object of
          the container object, and <span class=
          "c1"><tt>r_eq_fn</tt></span> will be copied by the
          <a href="#eq_fn80245"><tt>eq_fn</tt></a> object of the
          container object.</p>
        </td>
      </tr>

      <tr>
        <td>
          <pre>
<b>template</b>&lt;
    <b>class</b> It&gt;
  gp_hash_table
  (It first_it, 
    It last_it,
    <b>const</b> <a href=
"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn, 
    <b>const</b> <a href=
"#eq_fn80245"><tt>eq_fn</tt></a> &amp;r_eq_fn, 
    <b>const</b> <a href=
"#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a> &amp;r_comb_probe_fn)
</pre>
        </td>

        <td>
          <p>Constructor taking iterators to a range of value_types
          and some policy objects. The value_types between
          <span class="c1"><tt>first_it</tt></span> and
          <span class="c1"><tt>last_it</tt></span> will be inserted
          into the container object. <span class=
          "c1"><tt>r_hash_fn</tt></span> will be copied by the
          <a href="#hash_fn2015995"><tt>hash_fn</tt></a> object of
          the container object, <span class=
          "c1"><tt>r_eq_fn</tt></span> will be copied by the
          <a href="#eq_fn80245"><tt>eq_fn</tt></a> object of the
          container object, and <span class=
          "c1"><tt>r_comb_probe_fn</tt></span> will be copied by
          the <a href=
          "#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a>
          object of the container object.</p>
        </td>
      </tr>

      <tr>
        <td>
          <pre>
<b>template</b>&lt;
    <b>class</b> It&gt;
  gp_hash_table
  (It first_it, 
    It last_it,
    <b>const</b> <a href=
"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn, 
    <b>const</b> <a href=
"#eq_fn80245"><tt>eq_fn</tt></a> &amp;r_eq_fn, 
    <b>const</b> <a href=
"#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a> &amp;r_comb_probe_fn,
    <b>const</b> <a href=
"#probe_fn10954995"><tt>probe_fn</tt></a> &amp;r_probe_fn)
</pre>
        </td>

        <td>
          <p>Constructor taking iterators to a range of value_types
          and some policy objects. The value_types between
          <span class="c1"><tt>first_it</tt></span> and
          <span class="c1"><tt>last_it</tt></span> will be inserted
          into the container object. <span class=
          "c1"><tt>r_hash_fn</tt></span> will be copied by the
          <a href="#hash_fn2015995"><tt>hash_fn</tt></a> object of
          the container object, <span class=
          "c1"><tt>r_eq_fn</tt></span> will be copied by the
          <a href="#eq_fn80245"><tt>eq_fn</tt></a> object of the
          container object, <span class=
          "c1"><tt>r_comb_probe_fn</tt></span> will be copied by
          the <a href=
          "#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a>
          object of the container object, and <span class=
          "c1"><tt>r_probe_fn</tt></span> will be copied by the
          <a href="#probe_fn10954995"><tt>probe_fn</tt></a> object
          of the container object.</p>
        </td>
      </tr>

      <tr>
        <td>
          <pre>
<b>template</b>&lt;
    <b>class</b> It&gt;
  gp_hash_table
  (It first_it, 
    It last_it,
    <b>const</b> <a href=
"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn, 
    <b>const</b> <a href=
"#eq_fn80245"><tt>eq_fn</tt></a> &amp;r_eq_fn, 
    <b>const</b> <a href=
"#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a> &amp;r_comb_probe_fn, 
    <b>const</b> <a href=
"#probe_fn10954995"><tt>probe_fn</tt></a> &amp;r_probe_fn,      
    <b>const</b> <a href=
"#resize_policy4084493169"><tt>resize_policy</tt></a> &amp;r_resize_policy)
</pre>
        </td>

        <td>
          <p>Constructor taking iterators to a range of value_types
          and some policy objects. The value_types between
          <span class="c1"><tt>first_it</tt></span> and
          <span class="c1"><tt>last_it</tt></span> will be inserted
          into the container object. <span class=
          "c1"><tt>r_hash_fn</tt></span> will be copied by the
          <a href="#hash_fn2015995"><tt>hash_fn</tt></a> object of
          the container object, <span class=
          "c1"><tt>r_eq_fn</tt></span> will be copied by the
          <a href="#eq_fn80245"><tt>eq_fn</tt></a> object of the
          container object, <span class=
          "c1"><tt>r_comb_probe_fn</tt></span> will be copied by
          the <a href=
          "#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a>
          object of the container object, <span class=
          "c1"><tt>r_probe_fn</tt></span> will be copied by the
          <a href="#probe_fn10954995"><tt>probe_fn</tt></a> object
          of the container object, and <span class=
          "c1"><tt>r_resize_policy</tt></span> will be copied by
          the <a href=
          "#resize_policy4084493169"><tt>resize_policy</tt></a>
          object of the container object.</p>
        </td>
      </tr>

      <tr>
        <td>
          <pre>
  gp_hash_table
  (<b>const</b> <span class=
"c2"><tt>gp_hash_table</tt></span> &amp;other)
</pre>
        </td>

        <td>
          <p>Copy constructor.</p>
        </td>
      </tr>

      <tr>
        <td>
          <pre>
<b>virtual</b> 
  ~gp_hash_table
  ()
</pre>
        </td>

        <td>
          <p>Destructor.</p>
        </td>
      </tr>

      <tr>
        <td>
          <pre>
<span class="c2"><tt>gp_hash_table</tt></span> &amp;
  <b>operator</b>=
  (<b>const</b> <span class=
"c2"><tt>gp_hash_table</tt></span> &amp;other)
</pre>
        </td>

        <td>
          <p>Assignment operator.</p>
        </td>
      </tr>

      <tr>
        <td>
          <pre>
<b>void</b>
  swap
  (<span class=
"c2"><tt>gp_hash_table</tt></span> &amp;other)
</pre>
        </td>

        <td>
          <p>Swaps content.</p>
        </td>
      </tr>
    </table>

    <h3><a name="link7" id="link7">Policy Access Methods</a></h3>

    <table class="c1" width="100%" border="1" summary="Methods">
      <tr>
        <td width="45%" align="left"><b>Method</b></td>

        <td width="55%" align="left"><b>Description</b></td>
      </tr>

      <tr>
        <td>
          <pre>
<a href="#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a> &amp;
  get_comb_probe_fn
  ()
</pre>
        </td>

        <td>
          <p>Access to the <a href=
          "#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a>
          object.</p>
        </td>
      </tr>

      <tr>
        <td>
          <pre>
<b>const</b> <a href=
"#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a> &amp;
  get_comb_probe_fn
  () <b>const</b>
</pre>
        </td>

        <td>
          <p>Const access to the <a href=
          "#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a>
          object.</p>
        </td>
      </tr>

      <tr>
        <td>
          <pre>
<a href="#probe_fn10954995"><tt>probe_fn</tt></a> &amp;
  get_probe_fn
  ()
</pre>
        </td>

        <td>
          <p>Access to the <a href=
          "#probe_fn10954995"><tt>probe_fn</tt></a> object.</p>
        </td>
      </tr>

      <tr>
        <td>
          <pre>
<b>const</b> <a href=
"#probe_fn10954995"><tt>probe_fn</tt></a> &amp;
  get_probe_fn
  () <b>const</b>
</pre>
        </td>

        <td>
          <p>Const access to the <a href=
          "#probe_fn10954995"><tt>probe_fn</tt></a> object.</p>
        </td>
      </tr>
    </table>
  </div>
</body>
</html>
