<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>Colorer-take5 Library: HashtableCore< T > Class Template Reference</title> <link href="../styles/styles.css" rel="stylesheet" type="text/css"> <link href="../styles/doc.css" rel="stylesheet" type="text/css"> <link rel="icon" href="../images/logo-small-api.png"/> </head> <body> <div align='center'> <a href="../index.html">Home</a> | <a href="modules.html">Modules</a> | <a href="hierarchy.html">Class Hierarchy</a> | <a href="classes.html">Alphabetical List</a> | <a href="annotated.html">Compound List</a> | <a href="pages.html">Related Pages</a> </div> <!-- Generated by Doxygen 1.4.6 --> <h1>HashtableCore< T > Class Template Reference<br> <small> [<a class="el" href="group__common.html">Common interfaces</a>]</small> </h1><!-- doxytag: class="HashtableCore" --><p>Inheritance diagram for HashtableCore< T >: <p><center><img src="classHashtableCore.png" usemap="#HashtableCore< T >_map" border="0" alt=""></center> <map name="HashtableCore< T >_map"> <area href="classHashtable.html" alt="Hashtable< T >" shape="rect" coords="0,56,146,80"> <area href="classHashtableWOnulls.html" alt="HashtableWOnulls< T >" shape="rect" coords="156,56,302,80"> </map> <hr><a name="_details"></a><h2>Detailed Description</h2> <h3>template<class T><br> class HashtableCore< T ></h3> Common hashtable template. <p> Has no suppositions about templated object structure. <p> <table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3ed9f5af9655419ebcadc59af8858936"></a><!-- doxytag: member="HashtableCore::HashtableCore" ref="3ed9f5af9655419ebcadc59af8858936" args="()" --> </td><td class="memItemRight" valign="bottom"><a class="el" href="classHashtableCore.html#3ed9f5af9655419ebcadc59af8858936">HashtableCore</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Default constructor. <br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classHashtableCore.html#0476f039b454de3acd546137dbdc6597">HashtableCore</a> (int capacity, double loadFactor=DEFAULT_LOAD_FACTOR)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor with explicit hashtable size declaration. <a href="#0476f039b454de3acd546137dbdc6597"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d142230228d0b1d0ef4991f9a8e6601c"></a><!-- doxytag: member="HashtableCore::~HashtableCore" ref="d142230228d0b1d0ef4991f9a8e6601c" args="()" --> virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classHashtableCore.html#d142230228d0b1d0ef4991f9a8e6601c">~HashtableCore</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Default Destructor. <br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classHashtableCore.html#70d0c4fbe38c81b3cb038cbe218fdc71">put</a> (const <a class="el" href="classString.html">String</a> *key, T value)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Puts object into hashtable. <a href="#70d0c4fbe38c81b3cb038cbe218fdc71"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classHashtableCore.html#feb81e821fed9e0c4b4c04eeb7ebe5ac">remove</a> (const <a class="el" href="classString.html">String</a> *key)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Removes object from hashtable. <a href="#feb81e821fed9e0c4b4c04eeb7ebe5ac"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classString.html">String</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classHashtableCore.html#53369daa73bbb6ba2225c852fa115d16">key</a> (int index) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Enumerates hashtable keys. <a href="#53369daa73bbb6ba2225c852fa115d16"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classString.html">String</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classHashtableCore.html#0cce34e69f648b3b43483baf8213ec42">enumerateKey</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Starts internal hashtable enumeration procedure on keys. <a href="#0cce34e69f648b3b43483baf8213ec42"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classString.html">String</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classHashtableCore.html#31d6a514d6b8aec34d57ae6946c2a6c1">nextkey</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the next key object with current enumeration procedure. <a href="#31d6a514d6b8aec34d57ae6946c2a6c1"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classHashtableCore.html#00f71c26d7e91070e4cb8e2d6428d3f4">clear</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Clears hashtable. <a href="#00f71c26d7e91070e4cb8e2d6428d3f4"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="eac89f02b0268c818f483bf088106b11"></a><!-- doxytag: member="HashtableCore::size" ref="eac89f02b0268c818f483bf088106b11" args="() const " --> int </td><td class="memItemRight" valign="bottom"><a class="el" href="classHashtableCore.html#eac89f02b0268c818f483bf088106b11">size</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Number of objects, currently stored in hashtable. <br></td></tr> <tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e66f0391068102172192222252e55fa3"></a><!-- doxytag: member="HashtableCore::enumerate_int" ref="e66f0391068102172192222252e55fa3" args="() const " --> T * </td><td class="memItemRight" valign="bottom"><b>enumerate_int</b> () const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6868bc8b8f98fb32c99bcb8fef75c531"></a><!-- doxytag: member="HashtableCore::next_int" ref="6868bc8b8f98fb32c99bcb8fef75c531" args="() const " --> T * </td><td class="memItemRight" valign="bottom"><b>next_int</b> () const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8129d61126d7dd94e4ccfa3c8830ba97"></a><!-- doxytag: member="HashtableCore::rehash" ref="8129d61126d7dd94e4ccfa3c8830ba97" args="()" --> void </td><td class="memItemRight" valign="bottom"><b>rehash</b> ()</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="652615f133a3086c1836170c1f729a0f"></a><!-- doxytag: member="HashtableCore::operator=" ref="652615f133a3086c1836170c1f729a0f" args="(HashtableCore &)" --> <a class="el" href="classHashtableCore.html">HashtableCore</a> & </td><td class="memItemRight" valign="bottom"><b>operator=</b> (<a class="el" href="classHashtableCore.html">HashtableCore</a> &)</td></tr> <tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8ff3cb4b424af4404402237acca52e86"></a><!-- doxytag: member="HashtableCore::csize" ref="8ff3cb4b424af4404402237acca52e86" args="" --> int </td><td class="memItemRight" valign="bottom"><b>csize</b></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d2d8fd53dd8de89ed6402a6949400533"></a><!-- doxytag: member="HashtableCore::capacity" ref="d2d8fd53dd8de89ed6402a6949400533" args="" --> int </td><td class="memItemRight" valign="bottom"><b>capacity</b></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="36d33122a5c134d3101d5d03414c7a95"></a><!-- doxytag: member="HashtableCore::loadFactor" ref="36d33122a5c134d3101d5d03414c7a95" args="" --> double </td><td class="memItemRight" valign="bottom"><b>loadFactor</b></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="33c81a025f8be4d22b089b8c5792e566"></a><!-- doxytag: member="HashtableCore::bucket" ref="33c81a025f8be4d22b089b8c5792e566" args="" --> <a class="el" href="classHashEntry.html">HashEntry</a>< T > ** </td><td class="memItemRight" valign="bottom"><b>bucket</b></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="91a5da7e41c4ef0472e259c776b0ced3"></a><!-- doxytag: member="HashtableCore::enum_he" ref="91a5da7e41c4ef0472e259c776b0ced3" args="" --> <a class="el" href="classHashEntry.html">HashEntry</a>< T > * </td><td class="memItemRight" valign="bottom"><b>enum_he</b></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5e3ef0b26c7864ceeead0b1c76175c24"></a><!-- doxytag: member="HashtableCore::enum_bno" ref="5e3ef0b26c7864ceeead0b1c76175c24" args="" --> int </td><td class="memItemRight" valign="bottom"><b>enum_bno</b></td></tr> </table> <hr><h2>Constructor & Destructor Documentation</h2> <a class="anchor" name="0476f039b454de3acd546137dbdc6597"></a><!-- doxytag: member="HashtableCore::HashtableCore" ref="0476f039b454de3acd546137dbdc6597" args="(int capacity, double loadFactor=DEFAULT_LOAD_FACTOR)" --><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="mdPrefix" colspan="4"> template<class T> </td> </tr> <tr> <td class="md" nowrap valign="top"><a class="el" href="classHashtableCore.html">HashtableCore</a>< T >::<a class="el" href="classHashtableCore.html">HashtableCore</a> </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">int </td> <td class="mdname" nowrap> <em>capacity</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>double </td> <td class="mdname" nowrap> <em>loadFactor</em> = <code>DEFAULT_LOAD_FACTOR</code></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Constructor with explicit hashtable size declaration. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>capacity</em> </td><td>Initial capacity of <a class="el" href="classHashtable.html">Hashtable</a> </td></tr> <tr><td valign="top"></td><td valign="top"><em>loadFactor</em> </td><td>Initial loadFactor (0 < loadFactor < 1) </td></tr> </table> </dl> </td> </tr> </table> <hr><h2>Member Function Documentation</h2> <a class="anchor" name="70d0c4fbe38c81b3cb038cbe218fdc71"></a><!-- doxytag: member="HashtableCore::put" ref="70d0c4fbe38c81b3cb038cbe218fdc71" args="(const String *key, T value)" --><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="mdPrefix" colspan="4"> template<class T> </td> </tr> <tr> <td class="md" nowrap valign="top">bool <a class="el" href="classHashtableCore.html">HashtableCore</a>< T >::put </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="classString.html">String</a> * </td> <td class="mdname" nowrap> <em>key</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>T </td> <td class="mdname" nowrap> <em>value</em></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Puts object into hashtable. <p> If such a key already exists, object is replaced. <dl compact><dt><b>Returns:</b></dt><dd>true, if object is replaced, false, if new object is inserted. </dd></dl> </td> </tr> </table> <a class="anchor" name="feb81e821fed9e0c4b4c04eeb7ebe5ac"></a><!-- doxytag: member="HashtableCore::remove" ref="feb81e821fed9e0c4b4c04eeb7ebe5ac" args="(const String *key)" --><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="mdPrefix" colspan="4"> template<class T> </td> </tr> <tr> <td class="md" nowrap valign="top">bool <a class="el" href="classHashtableCore.html">HashtableCore</a>< T >::remove </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="classString.html">String</a> * </td> <td class="mdname1" valign="top" nowrap> <em>key</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Removes object from hashtable. <p> If there is no record, associated with <code>key</code>, method does nothing. <dl compact><dt><b>Returns:</b></dt><dd>true, if object was removed </dd></dl> </td> </tr> </table> <a class="anchor" name="53369daa73bbb6ba2225c852fa115d16"></a><!-- doxytag: member="HashtableCore::key" ref="53369daa73bbb6ba2225c852fa115d16" args="(int index) const " --><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="mdPrefix" colspan="4"> template<class T> </td> </tr> <tr> <td class="md" nowrap valign="top">const <a class="el" href="classString.html">String</a> * <a class="el" href="classHashtableCore.html">HashtableCore</a>< T >::key </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">int </td> <td class="mdname1" valign="top" nowrap> <em>index</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> const</td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Enumerates hashtable keys. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>index</em> </td><td>Internal index. Must be less, than <a class="el" href="classHashtableCore.html#eac89f02b0268c818f483bf088106b11">size()</a> </td></tr> </table> </dl> </td> </tr> </table> <a class="anchor" name="0cce34e69f648b3b43483baf8213ec42"></a><!-- doxytag: member="HashtableCore::enumerateKey" ref="0cce34e69f648b3b43483baf8213ec42" args="() const " --><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="mdPrefix" colspan="4"> template<class T> </td> </tr> <tr> <td class="md" nowrap valign="top"><a class="el" href="classString.html">String</a> * <a class="el" href="classHashtableCore.html">HashtableCore</a>< T >::enumerateKey </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> const</td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Starts internal hashtable enumeration procedure on keys. <p> <dl compact><dt><b>Returns:</b></dt><dd>First element's key value in a sequence, or null, if hashtable is empty. </dd></dl> </td> </tr> </table> <a class="anchor" name="31d6a514d6b8aec34d57ae6946c2a6c1"></a><!-- doxytag: member="HashtableCore::nextkey" ref="31d6a514d6b8aec34d57ae6946c2a6c1" args="() const " --><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="mdPrefix" colspan="4"> template<class T> </td> </tr> <tr> <td class="md" nowrap valign="top"><a class="el" href="classString.html">String</a> * <a class="el" href="classHashtableCore.html">HashtableCore</a>< T >::nextkey </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> const</td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Returns the next key object with current enumeration procedure. <p> If hashtable state is changed, and <a class="el" href="classHashtableCore.html#31d6a514d6b8aec34d57ae6946c2a6c1">nextkey()</a> call occurs, exception is thrown. Note, that internal enumeration counter is one for keys and values methods - so, each of them iterates one sequence. </td> </tr> </table> <a class="anchor" name="00f71c26d7e91070e4cb8e2d6428d3f4"></a><!-- doxytag: member="HashtableCore::clear" ref="00f71c26d7e91070e4cb8e2d6428d3f4" args="()" --><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="mdPrefix" colspan="4"> template<class T> </td> </tr> <tr> <td class="md" nowrap valign="top">void <a class="el" href="classHashtableCore.html">HashtableCore</a>< T >::clear </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Clears hashtable. <p> Deletes all objects, stored in it. </td> </tr> </table> <br><br> <center><small> Colorer-take5 Library. Copyright © 1999-2006 Igor Russkih.<br> Generated at Fri Nov 24 17:13:13 2006 by doxygen 1.4.6. </small><center> </BODY> </HTML>