<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE>template<class V> class EST_TStringHash</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<class V> class <A HREF="#DOC.DOCU">EST_TStringHash</A></H2></TD></H2></TD></TR></TABLE> <BLOCKQUOTE>A specialised hash table for when the key is an EST_String.</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-SP,Md_,M"> <param name=indent value="0,1,2"> <param name=arrowdir value="down"> </APPLET> <HR> <DL> <P><TABLE> <DT><H3>Public Methods</H3><DD><TR> <TD VALIGN=TOP><A HREF="#DOC.91.4.1"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A> </TD><TD><B>EST_TStringHash</B> (int <!1><A HREF="EST_String.html#DOC.75.10">size</A>)<BR> <I>Create a string hash table of <parameter>size</parameter> buckets</I> </TD></TR></TABLE></P> <P><TABLE> <DT><H3>Public</H3><DD><TR> <TD VALIGN=TOP><A HREF="#DOC.91.4.2"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>typedef <!1><A HREF="EST_Hash_Pair.html">EST_Hash_Pair</A><<!1><A HREF="EST_String.html">EST_String</A>, V> </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.4.3"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>typedef EST_TStructIterator< <!1><A HREF="EST_THash.html">EST_THash</A><<!1><A HREF="EST_String.html">EST_String</A>, V>, IPointer, <!1><A HREF="EST_Hash_Pair.html">EST_Hash_Pair</A><<!1><A HREF="EST_String.html">EST_String</A>, V> > </TD><TD><B>Entries</B> <BR> <I>Give the iterator a sensible name</I> </TD></TR></TABLE></P> </DL> <HR><H3>Inherited from <A HREF="EST_THash.html">EST_THash</A>:</H3> <DL> <P><DL> <DT><H3>Public Classes</H3><DD><DT> <P> <B>Pair Iteration</B> <P><DL> <DT> <IMG ALT="[more]" BORDER=0 SRC=icon1.gif>struct <B><A HREF="#DOC.91.3.20.1">IPointer_s</A></B> <DD><I>A position in the table is given by a bucket number and a pointer into the bucket</I> <DT> <IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.91.3.20.2">skip_blank</A></B>(IPointer &ip) const <DD><I>Shift to point at something</I> <DT> <IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.91.3.20.3">point_to_first</A></B>(IPointer &ip) const <DD><I>Go to start of the table</I> <DT> <IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.91.3.20.4">move_pointer_forwards</A></B>(IPointer &ip) const <DD><I>Move pointer forwards, at the end of the bucket, move down</I> <DT> <IMG ALT="[more]" BORDER=0 SRC=icon1.gif>bool <B><A HREF="#DOC.91.3.20.5">points_to_something</A></B>(const IPointer &ip) const <DD><I>We are at the end if the pointer ever becomes NULL</I> <DT> <IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="EST_Hash_Pair.html">EST_Hash_Pair</A><K, V> & <B><A HREF="#DOC.91.3.20.6">points_at</A></B>(const IPointer &ip) <DD><I>Return the contents of this entry</I> <DT> <IMG ALT="[more]" BORDER=0 SRC=icon1.gif>typedef <!1><A HREF="EST_Hash_Pair.html">EST_Hash_Pair</A><K, V> <B><A HREF="#DOC.91.3.20.7">Entry</A></B> <DD><I>An entry returned by the iterator is a key value pair</I> <DT> <IMG ALT="[more]" BORDER=0 SRC=icon1.gif>typedef EST_TStructIterator< <!1><A HREF="EST_THash.html">EST_THash</A><K, V>, IPointer, <!1><A HREF="EST_Hash_Pair.html">EST_Hash_Pair</A><K, V> > <B><A HREF="#DOC.91.3.20.8">Entries</A></B> <DD><I>Give the iterator a sensible name</I> </DL></P> <DT> <P> <B>Key Iteration</B> <P><DL> <DT> <IMG ALT="[more]" BORDER=0 SRC=icon1.gif>struct <B><A HREF="#DOC.91.3.21.1">IPointer_k_s</A></B> <DD><I>A position in the table is given by a bucket number and a pointer into the bucket</I> <DT> <IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.91.3.21.2">skip_blank</A></B>(IPointer_k &ip) const <DD><I>Shift to point at something</I> <DT> <IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.91.3.21.3">point_to_first</A></B>(IPointer_k &ip) const <DD><I>Go to start of the table</I> <DT> <IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.91.3.21.4">move_pointer_forwards</A></B>(IPointer_k &ip) const <DD><I>Move pointer forwards, at the end of the bucket, move down</I> <DT> <IMG ALT="[more]" BORDER=0 SRC=icon1.gif>bool <B><A HREF="#DOC.91.3.21.5">points_to_something</A></B>(const IPointer_k &ip) const <DD><I>We are at the end if the pointer ever becomes NULL</I> <DT> <IMG ALT="[more]" BORDER=0 SRC=icon1.gif>K& <B><A HREF="#DOC.91.3.21.6">points_at</A></B>(const IPointer_k &ip) <DD><I>Return the key of this entry</I> <DT> <IMG ALT="[more]" BORDER=0 SRC=icon1.gif>typedef K <B><A HREF="#DOC.91.3.21.7">KeyEntry</A></B> <DD><I>An entry returned by this iterator is just a key</I> <DT> <IMG ALT="[more]" BORDER=0 SRC=icon1.gif>typedef <!1><A HREF="EST_TIterator.html">EST_TIterator</A>< <!1><A HREF="EST_THash.html">EST_THash</A><K, V>, IPointer_k, K > <B><A HREF="#DOC.91.3.21.8">KeyEntries</A></B> <DD><I>Give the iterator a sensible name</I> </DL></P> </DL></P> <P><DL> <DT><H3>Public Methods</H3><DD><DT> <IMG ALT="o" SRC=icon2.gif>void <B>clear</B>(void) <DT> <IMG ALT="o" SRC=icon2.gif>unsigned int <B>num_entries</B>(void) const <DT> <IMG ALT="o" SRC=icon2.gif>int <B>present</B>(const K &<!1><A HREF="EST_TKVL.html#DOC.2.8.6">key</A>) const <DT> <IMG ALT="o" SRC=icon2.gif>V& <B>val</B>(const K &<!1><A HREF="EST_TKVL.html#DOC.2.8.6">key</A>, int &found) const <DT> <IMG ALT="o" SRC=icon2.gif>V& <B>val</B>(const K &<!1><A HREF="EST_TKVL.html#DOC.2.8.6">key</A>) const <DT> <IMG ALT="o" SRC=icon2.gif>void <B>copy</B>(const <!1><A HREF="EST_THash.html">EST_THash</A><K, V> &from) <DT> <IMG ALT="o" SRC=icon2.gif>void <B>map</B>(void (*func)(K&, V&)) <DT> <IMG ALT="o" SRC=icon2.gif>int <B>add_item</B>(const K &<!1><A HREF="EST_TKVL.html#DOC.2.8.6">key</A>, const V &value, int no_search = 0) <DT> <IMG ALT="o" SRC=icon2.gif>int <B>remove_item</B>(const K &rkey, int quiet = 0) <DT> <IMG ALT="o" SRC=icon2.gif><!1><A HREF="EST_THash.html">EST_THash</A><K,V> & <B>operator = </B>(const <!1><A HREF="EST_THash.html">EST_THash</A><K, V> &from) <DT> <IMG ALT="o" SRC=icon2.gif>void <B>dump</B>(ostream &stream, int all=0) </DL></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> &<!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>A specialised hash table for when the key is an EST_String. <P>This is just a version of <classname>EST_THash</classname> which has a different default hash function.</BLOCKQUOTE> <DL> <A NAME="EST_TStringHash"></A> <A NAME="DOC.91.4.1"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> EST_TStringHash(int <!1><A HREF="EST_String.html#DOC.75.10">size</A>)</B></TT> <DD>Create a string hash table of <parameter>size</parameter> buckets <DL><DT><DD></DL><P> <A NAME="Entry"></A> <A NAME="DOC.91.4.2"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>typedef <!1><A HREF="EST_Hash_Pair.html">EST_Hash_Pair</A><<!1><A HREF="EST_String.html">EST_String</A>, V> 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.4.3"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>typedef EST_TStructIterator< <!1><A HREF="EST_THash.html">EST_THash</A><<!1><A HREF="EST_String.html">EST_String</A>, V>, IPointer, <!1><A HREF="EST_Hash_Pair.html">EST_Hash_Pair</A><<!1><A HREF="EST_String.html">EST_String</A>, V> > Entries</B></TT> <DD>Give the iterator a sensible name <DL><DT><DD></DL><P></DL> <HR><DL><DT><B>This class has no child classes.</B></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>