📄 hash.tex
字号:
\section{\class{wxHashTable}}\label{wxhashtable}{\bf Please note} that this class is retained for backward compatibilityreasons; you should use \helpref{wxHashMap}{wxhashmap}.This class provides hash table functionality for wxWidgets, and for anapplication if it wishes. Data can be hashed on an integer or stringkey.\wxheading{Derived from}\helpref{wxObject}{wxobject}\wxheading{Include files}<wx/hash.h>\wxheading{Example}Below is an example of using a hash table.\begin{verbatim} wxHashTable table(wxKEY_STRING); wxPoint *point = new wxPoint(100, 200); table.Put("point 1", point); .... wxPoint *found_point = (wxPoint *)table.Get("point 1");\end{verbatim}A hash table is implemented as an array of pointers to lists. When nodata has been stored, the hash table takes only a little more space thanthis array (default size is 1000). When a data item is added, aninteger is constructed from the integer or string key that is within thebounds of the array. If the array element is NULL, a new (keyed) list iscreated for the element. Then the data object is appended to the list,storing the key in case other data objects need to be stored in the listalso (when a `collision' occurs).Retrieval involves recalculating the array index from the key, and searchingalong the keyed list for the data object whose stored key matches the passedkey. Obviously this is quicker when there are fewer collisions, so hashingwill become inefficient if the number of items to be stored greatly exceedsthe size of the hash table.\wxheading{See also}\helpref{wxList}{wxlist}\latexignore{\rtfignore{\wxheading{Members}}}\membersection{wxHashTable::wxHashTable}\label{wxhashtablector}\func{}{wxHashTable}{\param{unsigned int}{ key\_type}, \param{int}{ size = 1000}}Constructor. {\it key\_type} is one of wxKEY\_INTEGER, or wxKEY\_STRING,and indicates what sort of keying is required. {\it size} is optional.\membersection{wxHashTable::\destruct{wxHashTable}}\label{wxhashtabledtor}\func{}{\destruct{wxHashTable}}{\void}Destroys the hash table.\membersection{wxHashTable::BeginFind}\label{wxhashtablebeginfind}\func{void}{BeginFind}{\void}The counterpart of {\it Next}. If the application wishes to iteratethrough all the data in the hash table, it can call {\it BeginFind} andthen loop on {\it Next}.\membersection{wxHashTable::Clear}\label{wxhashtableclear}\func{void}{Clear}{\void}Clears the hash table of all nodes (but as usual, doesn't delete user data).\membersection{wxHashTable::Delete}\label{wxhashtabledelete}\func{wxObject *}{Delete}{\param{long}{ key}}\func{wxObject *}{Delete}{\param{const wxString\& }{ key}}Deletes entry in hash table and returns the user's data (if found).\membersection{wxHashTable::DeleteContents}\label{wxhashtabledeletecontents}\func{void}{DeleteContents}{\param{bool}{ flag}}If set to true data stored in hash table will be deleted when hash table objectis destroyed.\membersection{wxHashTable::Get}\label{wxhashtableget}\func{wxObject *}{Get}{\param{long}{ key}}\func{wxObject *}{Get}{\param{const char*}{ key}}Gets data from the hash table, using an integer or string key (depending on whichhas table constructor was used).\membersection{wxHashTable::MakeKey}\label{wxhashtablemakekey}\func{long}{MakeKey}{\param{const wxString\& }{string}}Makes an integer key out of a string. An application may wish to make a keyexplicitly (for instance when combining two data values to form a key).\membersection{wxHashTable::Next}\label{wxhashtablenext}\func{wxHashTable::Node *}{Next}{\void}If the application wishes to iterate through all the data in the hashtable, it can call {\it BeginFind} and then loop on {\it Next}. This functionreturns a {\bf wxHashTable::Node} pointer (or NULL if there are no more nodes).The return value is functionally equivalent to \textbf{wxNode} but might not beimplemented as a \textbf{wxNode}. The user will probably only wish to use the\textbf{GetData} method to retrieve the data; the node may also be deleted.\membersection{wxHashTable::Put}\label{wxhashtableput}\func{void}{Put}{\param{long}{ key}, \param{wxObject *}{object}}\func{void}{Put}{\param{const char*}{ key}, \param{wxObject *}{object}}Inserts data into the hash table, using an integer or string key (depending on whichhas table constructor was used). The key string is copied and stored by the hashtable implementation.\membersection{wxHashTable::GetCount}\label{wxhashtablegetcount}\constfunc{size\_t}{GetCount}{\void}Returns the number of elements in the hash table.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -