Sophie

Sophie

distrib > Fedora > 14 > x86_64 > media > updates > by-pkgid > 0e54ba0ee564ce6063a5e83aa86060c5 > files > 226

festival-speechtools-devel-1.2.96-18.fc14.i686.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>
<HEAD>
   <TITLE>template<class K, class V> class  EST_THash</TITLE>
   <META NAME="GENERATOR" CONTENT="DOC++ 3.4.6">
</HEAD>
 <body bgcolor="#ffffff" link="#0000ff" 
	vlink="#dd0000" text="#000088" alink="9000ff">

<A HREF = "http://www.cstr.ed.ac.uk/">
   <IMG align=left BORDER=0 SRC = "cstr.gif"></A> 
<A HREF="http://www.cstr.ed.ac.uk/projects/speech_tools.html">
	<IMG BORDER=0 ALIGN=right SRC="est.jpg" width=150 height=93></A>
<br>

<br clear=left>
<p align=right>

In file ../include/EST_THash.h:<TABLE BORDER=0><TR>
<TD VALIGN=TOP><H2>template&lt;class K, class V&gt; class  <A HREF="#DOC.DOCU">EST_THash</A></H2></TD></H2></TD></TR></TABLE>
<BLOCKQUOTE>An open hash table.</BLOCKQUOTE>
<HR>

<H2>Inheritance:</H2>
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=95>
<param name=classes value="CEST_HashFunctions,MEST_HashFunctions.html,CEST_THash,MEST_THash.html,CEST_TStringHash,MEST_TStringHash.html">
<param name=before value="M,M,M^_">
<param name=after value="Md-,M,M">
<param name=indent value="0,1,1">
<param name=arrowdir value="down">
</APPLET>
<HR>

<DL>
<P><TABLE>
<DT><H3>Public Classes</H3><DD><TR>
<TD VALIGN=TOP><A HREF="#DOC.91.3.20"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A> </TD><TD><B>Pair Iteration</B> <BR>
<I></I>
<P><TABLE>
<TR>
<TD VALIGN=TOP><A HREF="#DOC.91.3.20.1"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>struct  </TD><TD><B>IPointer_s</B> <BR>
<I>A position in the table is given by a bucket number and a pointer into the bucket</I>
</TD></TR><TR>
<TD VALIGN=TOP><A HREF="#DOC.91.3.20.2"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>void </TD><TD><B>skip_blank</B> (IPointer &amp;ip) const <BR>
<I>Shift to point at something</I>
</TD></TR><TR>
<TD VALIGN=TOP><A HREF="#DOC.91.3.20.3"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>void </TD><TD><B>point_to_first</B> (IPointer &amp;ip) const <BR>
<I>Go to start of the table</I>
</TD></TR><TR>
<TD VALIGN=TOP><A HREF="#DOC.91.3.20.4"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>void </TD><TD><B>move_pointer_forwards</B> (IPointer &amp;ip) const <BR>
<I>Move pointer forwards, at the end of the bucket, move down</I>
</TD></TR><TR>
<TD VALIGN=TOP><A HREF="#DOC.91.3.20.5"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>bool </TD><TD><B>points_to_something</B> (const IPointer &amp;ip) const <BR>
<I>We are at the end if the pointer ever becomes NULL</I>
</TD></TR><TR>
<TD VALIGN=TOP><A HREF="#DOC.91.3.20.6"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A><!1><A HREF="EST_Hash_Pair.html">EST_Hash_Pair</A>&lt;K, V&gt; &amp; </TD><TD><B>points_at</B> (const IPointer &amp;ip)<BR>
<I>Return the contents of this entry</I>
</TD></TR><TR>
<TD VALIGN=TOP><A HREF="#DOC.91.3.20.7"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>typedef  <!1><A HREF="EST_Hash_Pair.html">EST_Hash_Pair</A>&lt;K, V&gt;  </TD><TD><B>Entry</B> <BR>
<I>An entry returned by the iterator is a key value pair</I>
</TD></TR><TR>
<TD VALIGN=TOP><A HREF="#DOC.91.3.20.8"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>typedef  EST_TStructIterator&lt; <!1><A HREF="EST_THash.html">EST_THash</A>&lt;K, V&gt;, IPointer, <!1><A HREF="EST_Hash_Pair.html">EST_Hash_Pair</A>&lt;K, V&gt; &gt;  </TD><TD><B>Entries</B> <BR>
<I>Give the iterator a sensible name</I>
</TD></TR></TABLE></P>
</TD></TR><TR>
<TD VALIGN=TOP><A HREF="#DOC.91.3.21"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A> </TD><TD><B>Key Iteration</B> <BR>
<I></I>
<P><TABLE>
<TR>
<TD VALIGN=TOP><A HREF="#DOC.91.3.21.1"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>struct  </TD><TD><B>IPointer_k_s</B> <BR>
<I>A position in the table is given by a bucket number and a pointer into the bucket</I>
</TD></TR><TR>
<TD VALIGN=TOP><A HREF="#DOC.91.3.21.2"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>void </TD><TD><B>skip_blank</B> (IPointer_k &amp;ip) const <BR>
<I>Shift to point at something</I>
</TD></TR><TR>
<TD VALIGN=TOP><A HREF="#DOC.91.3.21.3"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>void </TD><TD><B>point_to_first</B> (IPointer_k &amp;ip) const <BR>
<I>Go to start of the table</I>
</TD></TR><TR>
<TD VALIGN=TOP><A HREF="#DOC.91.3.21.4"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>void </TD><TD><B>move_pointer_forwards</B> (IPointer_k &amp;ip) const <BR>
<I>Move pointer forwards, at the end of the bucket, move down</I>
</TD></TR><TR>
<TD VALIGN=TOP><A HREF="#DOC.91.3.21.5"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>bool </TD><TD><B>points_to_something</B> (const IPointer_k &amp;ip) const <BR>
<I>We are at the end if the pointer ever becomes NULL</I>
</TD></TR><TR>
<TD VALIGN=TOP><A HREF="#DOC.91.3.21.6"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>K&amp; </TD><TD><B>points_at</B> (const IPointer_k &amp;ip)<BR>
<I>Return the key of this entry</I>
</TD></TR><TR>
<TD VALIGN=TOP><A HREF="#DOC.91.3.21.7"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>typedef  K </TD><TD><B>KeyEntry</B> <BR>
<I>An entry returned by this iterator is just a key</I>
</TD></TR><TR>
<TD VALIGN=TOP><A HREF="#DOC.91.3.21.8"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>typedef  <!1><A HREF="EST_TIterator.html">EST_TIterator</A>&lt; <!1><A HREF="EST_THash.html">EST_THash</A>&lt;K, V&gt;, IPointer_k, K &gt;  </TD><TD><B>KeyEntries</B> <BR>
<I>Give the iterator a sensible name</I>
</TD></TR></TABLE></P>
</TD></TR></TABLE></P>

<P><TABLE>
<DT><H3>Public Methods</H3><DD><TR>
<TD VALIGN=TOP><A HREF="#DOC.91.3.6"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A> </TD><TD><B>EST_THash</B> (int <!1><A HREF="EST_String.html#DOC.75.10">size</A>, unsigned int (*hash_function)(const K &amp;<!1><A HREF="EST_TKVL.html#DOC.2.8.6">key</A>, unsigned int <!1><A HREF="EST_String.html#DOC.75.10">size</A>)= NULL)<BR>
<I>Create a table with the given number of buckets.</I>
</TD></TR><TR>
<TD VALIGN=TOP><A HREF="#DOC.91.3.7"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A> </TD><TD><B>EST_THash</B> (const <!1><A HREF="EST_THash.html#DOC.91.3.7">EST_THash</A>&lt;K, V&gt; &amp;from)<BR>
<I>Create a copy</I>
</TD></TR><TR>
<TD VALIGN=TOP><A HREF="#DOC.91.3.8"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A> </TD><TD><B>~EST_THash</B> (void)<BR>
<I>Destroy the table</I>
</TD></TR><TR>
<TD VALIGN=TOP><A HREF="#DOC.91.3.9"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>void </TD><TD><B>clear</B> (void)<BR>
<I>Empty the table</I>
</TD></TR><TR>
<TD VALIGN=TOP><A HREF="#DOC.91.3.10"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>unsigned int </TD><TD><B>num_entries</B> (void) const <BR>
<I>Return the total number of entries in the table</I>
</TD></TR><TR>
<TD VALIGN=TOP><A HREF="#DOC.91.3.11"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>int </TD><TD><B>present</B> (const K &amp;<!1><A HREF="EST_TKVL.html#DOC.2.8.6">key</A>) const <BR>
<I>Does the key have an entry?</I>
</TD></TR><TR>
<TD VALIGN=TOP><A HREF="#DOC.91.3.12"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>V&amp; </TD><TD><B>val</B> (const K &amp;<!1><A HREF="EST_TKVL.html#DOC.2.8.6">key</A>, int &amp;found) const <BR>
<I>Return the value associated with the key.</I>
</TD></TR><TR>
<TD VALIGN=TOP><A HREF="#DOC.91.3.13"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>V&amp; </TD><TD><B>val</B> (const K &amp;<!1><A HREF="EST_TKVL.html#DOC.2.8.6">key</A>) const <BR>
<I>Return the value associated with the key</I>
</TD></TR><TR>
<TD VALIGN=TOP><A HREF="#DOC.91.3.14"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>void </TD><TD><B>copy</B> (const <!1><A HREF="EST_THash.html">EST_THash</A>&lt;K, V&gt; &amp;from)<BR>
<I>Copy all entries</I>
</TD></TR><TR>
<TD VALIGN=TOP><A HREF="#DOC.91.3.15"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>void </TD><TD><B>map</B> (void (*func)(K&amp;, V&amp;))<BR>
<I>Apply &lt;parameter&gt;func&lt;/parameter&gt; to each entry in the table</I>
</TD></TR><TR>
<TD VALIGN=TOP><A HREF="#DOC.91.3.16"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>int </TD><TD><B>add_item</B> (const K &amp;<!1><A HREF="EST_TKVL.html#DOC.2.8.6">key</A>, const V &amp;value, int no_search = 0)<BR>
<I>Add an entry to the table</I>
</TD></TR><TR>
<TD VALIGN=TOP><A HREF="#DOC.91.3.17"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>int </TD><TD><B>remove_item</B> (const K &amp;rkey, int quiet = 0)<BR>
<I>Remove an entry from the table</I>
</TD></TR><TR>
<TD VALIGN=TOP><A HREF="#DOC.91.3.18"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A><!1><A HREF="EST_THash.html">EST_THash</A>&lt;K,V&gt; &amp; </TD><TD><B>operator = </B> (const <!1><A HREF="EST_THash.html">EST_THash</A>&lt;K, V&gt; &amp;from)<BR>
<I>Assignment is a copy operation</I>
</TD></TR><TR>
<TD VALIGN=TOP><A HREF="#DOC.91.3.19"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>void </TD><TD><B>dump</B> (ostream &amp;stream, int all=0)<BR>
<I>Print the table to &lt;parameter&gt;stream&lt;/parameter&gt; in a human readable format</I>
</TD></TR></TABLE></P>

</DL>
<HR><H3>Inherited from <A HREF="EST_HashFunctions.html">EST_HashFunctions</A>:</H3>
<DL>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>static   unsigned int <B>DefaultHash</B>(const void* <!1><A HREF="XML_Parser.html#DOC.190.3.8">data</A>, size_t <!1><A HREF="EST_String.html#DOC.75.10">size</A>, unsigned int <!1><A HREF="EST_TVector.html#DOC.15.1.20.3">n</A>)
<DT>
<IMG ALT="o" SRC=icon2.gif>static   unsigned int <B>StringHash</B>(const <!1><A HREF="EST_String.html">EST_String</A> &amp;<!1><A HREF="EST_TKVL.html#DOC.2.8.6">key</A>, unsigned int <!1><A HREF="EST_String.html#DOC.75.10">size</A>)
</DL></P>

</DL>

<A NAME="DOC.DOCU"></A>
<HR>
<H2>Documentation</H2>
<BLOCKQUOTE>An open hash table. The number of buckets should be set to allow
enough space that there are relatively few entries per bucket on
average.</BLOCKQUOTE>
<DL>

<A NAME="EST_THash"></A>
<A NAME="DOC.91.3.6"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> EST_THash(int <!1><A HREF="EST_String.html#DOC.75.10">size</A>, unsigned int (*hash_function)(const K &amp;<!1><A HREF="EST_TKVL.html#DOC.2.8.6">key</A>, unsigned int <!1><A HREF="EST_String.html#DOC.75.10">size</A>)= NULL)</B></TT>
<DD>Create a table with the given number of buckets. Optionally setting
a custom hash function.
<DL><DT><DD></DL><P>
<A NAME="EST_THash"></A>
<A NAME="DOC.91.3.7"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> EST_THash(const <!1><A HREF="EST_THash.html#DOC.91.3.7">EST_THash</A>&lt;K, V&gt; &amp;from)</B></TT>
<DD>Create a copy
<DL><DT><DD></DL><P>
<A NAME="~EST_THash"></A>
<A NAME="DOC.91.3.8"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> ~EST_THash(void)</B></TT>
<DD>Destroy the table
<DL><DT><DD></DL><P>
<A NAME="clear"></A>
<A NAME="DOC.91.3.9"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void clear(void)</B></TT>
<DD>Empty the table
<DL><DT><DD></DL><P>
<A NAME="num_entries"></A>
<A NAME="DOC.91.3.10"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>unsigned int num_entries(void) const </B></TT>
<DD>Return the total number of entries in the table
<DL><DT><DD></DL><P>
<A NAME="present"></A>
<A NAME="DOC.91.3.11"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>int present(const K &amp;<!1><A HREF="EST_TKVL.html#DOC.2.8.6">key</A>) const </B></TT>
<DD>Does the key have an entry?
<DL><DT><DD></DL><P>
<A NAME="val"></A>
<A NAME="DOC.91.3.12"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>V&amp; val(const K &amp;<!1><A HREF="EST_TKVL.html#DOC.2.8.6">key</A>, int &amp;found) const </B></TT>
<DD>Return the value associated with the key.
&lt;parameter&gt;found&lt;/parameter&gt; is set to whether such an entry was found.
<DL><DT><DD></DL><P>
<A NAME="val"></A>
<A NAME="DOC.91.3.13"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>V&amp; val(const K &amp;<!1><A HREF="EST_TKVL.html#DOC.2.8.6">key</A>) const </B></TT>
<DD>Return the value associated with the key
<DL><DT><DD></DL><P>
<A NAME="copy"></A>
<A NAME="DOC.91.3.14"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void copy(const <!1><A HREF="EST_THash.html">EST_THash</A>&lt;K, V&gt; &amp;from)</B></TT>
<DD>Copy all entries
<DL><DT><DD></DL><P>
<A NAME="map"></A>
<A NAME="DOC.91.3.15"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void map(void (*func)(K&amp;, V&amp;))</B></TT>
<DD>Apply &lt;parameter&gt;func&lt;/parameter&gt; to each entry in the table
<DL><DT><DD></DL><P>
<A NAME="add_item"></A>
<A NAME="DOC.91.3.16"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>int add_item(const K &amp;<!1><A HREF="EST_TKVL.html#DOC.2.8.6">key</A>, const V &amp;value, int no_search = 0)</B></TT>
<DD>Add an entry to the table
<DL><DT><DD></DL><P>
<A NAME="remove_item"></A>
<A NAME="DOC.91.3.17"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>int remove_item(const K &amp;rkey, int quiet = 0)</B></TT>
<DD>Remove an entry from the table
<DL><DT><DD></DL><P>
<A NAME="operator = "></A>
<A NAME="DOC.91.3.18"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="EST_THash.html">EST_THash</A>&lt;K,V&gt; &amp; operator = (const <!1><A HREF="EST_THash.html">EST_THash</A>&lt;K, V&gt; &amp;from)</B></TT>
<DD>Assignment is a copy operation
<DL><DT><DD></DL><P>
<A NAME="dump"></A>
<A NAME="DOC.91.3.19"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void dump(ostream &amp;stream, int all=0)</B></TT>
<DD>Print the table to &lt;parameter&gt;stream&lt;/parameter&gt; in a human readable format
<DL><DT><DD></DL><P>
<A NAME="Pair Iteration"></A>
<A NAME="DOC.91.3.20"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> Pair Iteration</B></TT>
<DD>
This iterator steps through the table returning key-value pairs. 
<DL><DT><DT><B>Friends:</B><DD>  class EST_TStructIterator&lt; <!1><A HREF="EST_THash.html">EST_THash</A>&lt;K, V&gt;, IPointer, <!1><A HREF="EST_Hash_Pair.html">EST_Hash_Pair</A>&lt;K, V&gt; &gt;<BR>  class EST_TRwStructIterator&lt; <!1><A HREF="EST_THash.html">EST_THash</A>&lt;K, V&gt;, IPointer, <!1><A HREF="EST_Hash_Pair.html">EST_Hash_Pair</A>&lt;K, V&gt; &gt;<BR>  class <!1><A HREF="EST_TIterator.html">EST_TIterator</A>&lt; <!1><A HREF="EST_THash.html">EST_THash</A>&lt;K, V&gt;, IPointer, <!1><A HREF="EST_Hash_Pair.html">EST_Hash_Pair</A>&lt;K, V&gt; &gt;<BR>  class EST_TRwIterator&lt; <!1><A HREF="EST_THash.html">EST_THash</A>&lt;K, V&gt;, IPointer, <!1><A HREF="EST_Hash_Pair.html">EST_Hash_Pair</A>&lt;K, V&gt; &gt;<BR><DD></DL><P><DL>

<A NAME="IPointer_s"></A>
<A NAME="DOC.91.3.20.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>struct  IPointer_s</B></TT>
<DD>A position in the table is given by a bucket number and a
pointer into the bucket
<DL><DT><DD></DL><P>
<A NAME="skip_blank"></A>
<A NAME="DOC.91.3.20.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void skip_blank(IPointer &amp;ip) const </B></TT>
<DD>Shift to point at something
<DL><DT><DD></DL><P>
<A NAME="point_to_first"></A>
<A NAME="DOC.91.3.20.3"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void point_to_first(IPointer &amp;ip) const </B></TT>
<DD>Go to start of the table
<DL><DT><DD></DL><P>
<A NAME="move_pointer_forwards"></A>
<A NAME="DOC.91.3.20.4"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void move_pointer_forwards(IPointer &amp;ip) const </B></TT>
<DD>Move pointer forwards, at the end of the bucket, move down
<DL><DT><DD></DL><P>
<A NAME="points_to_something"></A>
<A NAME="DOC.91.3.20.5"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>bool points_to_something(const IPointer &amp;ip) const </B></TT>
<DD>We are at the end if the pointer ever becomes NULL
<DL><DT><DD></DL><P>
<A NAME="points_at"></A>
<A NAME="DOC.91.3.20.6"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="EST_Hash_Pair.html">EST_Hash_Pair</A>&lt;K, V&gt; &amp; points_at(const IPointer &amp;ip)</B></TT>
<DD>Return the contents of this entry
<DL><DT><DD></DL><P>
<A NAME="Entry"></A>
<A NAME="DOC.91.3.20.7"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>typedef  <!1><A HREF="EST_Hash_Pair.html">EST_Hash_Pair</A>&lt;K, V&gt;  Entry</B></TT>
<DD>An entry returned by the iterator is a key value pair
<DL><DT><DD></DL><P>
<A NAME="Entries"></A>
<A NAME="DOC.91.3.20.8"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>typedef  EST_TStructIterator&lt; <!1><A HREF="EST_THash.html">EST_THash</A>&lt;K, V&gt;, IPointer, <!1><A HREF="EST_Hash_Pair.html">EST_Hash_Pair</A>&lt;K, V&gt; &gt;  Entries</B></TT>
<DD>Give the iterator a sensible name
<DL><DT><DD></DL><P></DL>

<A NAME="Key Iteration"></A>
<A NAME="DOC.91.3.21"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> Key Iteration</B></TT>
<DD>
This iterator steps through the table returning just keys.
<DL><DT><DT><B>Friends:</B><DD>  class <!1><A HREF="EST_TIterator.html">EST_TIterator</A>&lt; <!1><A HREF="EST_THash.html">EST_THash</A>&lt;K, V&gt;, IPointer_k, K &gt;<BR>  class EST_TRwIterator&lt; <!1><A HREF="EST_THash.html">EST_THash</A>&lt;K, V&gt;, IPointer_k, K &gt;<BR><DD></DL><P><DL>

<A NAME="IPointer_k_s"></A>
<A NAME="DOC.91.3.21.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>struct  IPointer_k_s</B></TT>
<DD>A position in the table is given by a bucket number and a
pointer into the bucket
<DL><DT><DD></DL><P>
<A NAME="skip_blank"></A>
<A NAME="DOC.91.3.21.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void skip_blank(IPointer_k &amp;ip) const </B></TT>
<DD>Shift to point at something
<DL><DT><DD></DL><P>
<A NAME="point_to_first"></A>
<A NAME="DOC.91.3.21.3"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void point_to_first(IPointer_k &amp;ip) const </B></TT>
<DD>Go to start of the table
<DL><DT><DD></DL><P>
<A NAME="move_pointer_forwards"></A>
<A NAME="DOC.91.3.21.4"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void move_pointer_forwards(IPointer_k &amp;ip) const </B></TT>
<DD>Move pointer forwards, at the end of the bucket, move down
<DL><DT><DD></DL><P>
<A NAME="points_to_something"></A>
<A NAME="DOC.91.3.21.5"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>bool points_to_something(const IPointer_k &amp;ip) const </B></TT>
<DD>We are at the end if the pointer ever becomes NULL
<DL><DT><DD></DL><P>
<A NAME="points_at"></A>
<A NAME="DOC.91.3.21.6"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>K&amp; points_at(const IPointer_k &amp;ip)</B></TT>
<DD>Return the key of this entry
<DL><DT><DD></DL><P>
<A NAME="KeyEntry"></A>
<A NAME="DOC.91.3.21.7"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>typedef  K KeyEntry</B></TT>
<DD>An entry returned by this iterator is just a key
<DL><DT><DD></DL><P>
<A NAME="KeyEntries"></A>
<A NAME="DOC.91.3.21.8"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>typedef  <!1><A HREF="EST_TIterator.html">EST_TIterator</A>&lt; <!1><A HREF="EST_THash.html">EST_THash</A>&lt;K, V&gt;, IPointer_k, K &gt;  KeyEntries</B></TT>
<DD>Give the iterator a sensible name
<DL><DT><DD></DL><P></DL>
</DL>
<HR>
<DL><DT><B>Direct child classes:
</B><DD><A HREF="EST_TStringHash.html">EST_TStringHash</A><BR>
</DL>

<DL><DT><DD></DL><P><P><I><A HREF="index.html">Alphabetic index</A></I> <I><A HREF="HIER.html">HTML hierarchy of classes</A> or <A HREF="HIERjava.html">Java</A></I></P><HR>
<A HREF = "http://www.ed.ac.uk/">
   <IMG align=right BORDER=0 SRC = "edcrest.gif"></A>

<P Align=left><I>This page is part of the 
<A HREF="http://www.cstr.ed.ac.uk/projects/speech_tools.html">
Edinburgh Speech Tools Library</A> documentation
<br>
Copyright <A HREF="http://www.ed.ac.uk"> University of Edinburgh</A> 1997
<br>
Contact: <A HREF="mailto:speech_toolss@cstr.ed.ac.uk"> 
         speech_tools@cstr.ed.ac.uk </a>
</P>
<br clear=right>