<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
< html >
< head >
< meta http-equiv = "Content-Type" content = "text/html; charset=ISO-8859-1" >
< title > TQAsciiDict Class< / title >
< style type = "text/css" > < ! - -
fn { margin-left: 1cm; text-indent: -1cm; }
a:link { color: #004faf; text-decoration: none }
a:visited { color: #672967; text-decoration: none }
body { background: #ffffff; color: black; }
-->< / style >
< / head >
< body >
< table border = "0" cellpadding = "0" cellspacing = "0" width = "100%" >
< tr bgcolor = "#E5E5E5" >
< td valign = center >
< a href = "index.html" >
< font color = "#004faf" > Home< / font > < / a >
| < a href = "classes.html" >
< font color = "#004faf" > All Classes< / font > < / a >
| < a href = "mainclasses.html" >
< font color = "#004faf" > Main Classes< / font > < / a >
| < a href = "annotated.html" >
< font color = "#004faf" > Annotated< / font > < / a >
| < a href = "groups.html" >
< font color = "#004faf" > Grouped Classes< / font > < / a >
| < a href = "functions.html" >
< font color = "#004faf" > Functions< / font > < / a >
< / td >
< td align = "right" valign = "center" > < img src = "logo32.png" align = "right" width = "64" height = "32" border = "0" > < / td > < / tr > < / table > < h1 align = center > TQAsciiDict Class Reference< / h1 >
< p > The TQAsciiDict class is a template class that provides a dictionary based on char* keys.
< a href = "#details" > More...< / a >
< p > < tt > #include < < a href = "tqasciidict-h.html" > tqasciidict.h< / a > > < / tt >
< p > Inherits < a href = "tqptrcollection.html" > TQPtrCollection< / a > .
< p > < a href = "tqasciidict-members.html" > List of all member functions.< / a >
< h2 > Public Members< / h2 >
< ul >
< li class = fn > < a href = "#TQAsciiDict" > < b > TQAsciiDict< / b > < / a > ( int size = 17, bool caseSensitive = TRUE, bool copyKeys = TRUE )< / li >
< li class = fn > < a href = "#TQAsciiDict-2" > < b > TQAsciiDict< / b > < / a > ( const TQAsciiDict< type> & dict )< / li >
< li class = fn > < a href = "#~TQAsciiDict" > < b > ~TQAsciiDict< / b > < / a > ()< / li >
< li class = fn > TQAsciiDict< type> & < a href = "#operator-eq" > < b > operator=< / b > < / a > ( const TQAsciiDict< type> & dict )< / li >
< li class = fn > virtual uint < a href = "#count" > < b > count< / b > < / a > () const< / li >
< li class = fn > uint < a href = "#size" > < b > size< / b > < / a > () const< / li >
< li class = fn > bool < a href = "#isEmpty" > < b > isEmpty< / b > < / a > () const< / li >
< li class = fn > void < a href = "#insert" > < b > insert< / b > < / a > ( const char * key, const type * item )< / li >
< li class = fn > void < a href = "#replace" > < b > replace< / b > < / a > ( const char * key, const type * item )< / li >
< li class = fn > bool < a href = "#remove" > < b > remove< / b > < / a > ( const char * key )< / li >
< li class = fn > type * < a href = "#take" > < b > take< / b > < / a > ( const char * key )< / li >
< li class = fn > type * < a href = "#find" > < b > find< / b > < / a > ( const char * key ) const< / li >
< li class = fn > type * < a href = "#operator[]" > < b > operator[]< / b > < / a > ( const char * key ) const< / li >
< li class = fn > virtual void < a href = "#clear" > < b > clear< / b > < / a > ()< / li >
< li class = fn > void < a href = "#resize" > < b > resize< / b > < / a > ( uint newsize )< / li >
< li class = fn > void < a href = "#statistics" > < b > statistics< / b > < / a > () const< / li >
< / ul >
< h2 > Important Inherited Members< / h2 >
< ul >
< li class = fn > bool < a href = "#autoDelete" > < b > autoDelete< / b > < / a > () const< / li >
< li class = fn > void < a href = "#setAutoDelete" > < b > setAutoDelete< / b > < / a > ( bool enable )< / li >
< / ul >
< h2 > Protected Members< / h2 >
< ul >
< li class = fn > virtual TQDataStream & < a href = "#read" > < b > read< / b > < / a > ( TQDataStream & s, TQPtrCollection::Item & item )< / li >
< li class = fn > virtual TQDataStream & < a href = "#write" > < b > write< / b > < / a > ( TQDataStream & s, TQPtrCollection::Item ) const< / li >
< / ul >
< hr > < a name = "details" > < / a > < h2 > Detailed Description< / h2 >
The TQAsciiDict class is a template class that provides a dictionary based on char* keys.
< p >
< p >
< p > TQAsciiDict is implemented as a template class. Define a template
instance TQAsciiDict< X> to create a dictionary that operates on
pointers to X (X*).
< p > A dictionary is a collection of key-value pairs. The key is a
char* used for insertion, removal and lookup. The value is a
pointer. Dictionaries provide very fast insertion and lookup.
< p > TQAsciiDict cannot handle Unicode keys; use the < a href = "tqdict.html" > TQDict< / a > template
instead, which uses < a href = "tqstring.html" > TQString< / a > keys. A TQDict has the same
performace as a TQAsciiDict.
< p > Example:
< pre >
TQAsciiDict< TQLineEdit> fields; // char* keys, TQLineEdit* values
fields.< a href = "#insert" > insert< / a > ( "forename", new < a href = "tqlineedit.html" > TQLineEdit< / a > ( this ) );
fields.< a href = "#insert" > insert< / a > ( "surname", new < a href = "tqlineedit.html" > TQLineEdit< / a > ( this ) );
fields["forename"]-> setText( "Homer" );
fields["surname"]-> setText( "Simpson" );
< a href = "tqasciidictiterator.html" > TQAsciiDictIterator< / a > < TQLineEdit> it( fields ); // See TQAsciiDictIterator
for( ; it.< a href = "tqasciidictiterator.html#current" > current< / a > (); ++it )
cout < < it.< a href = "tqasciidictiterator.html#currentKey" > currentKey< / a > () < < ": " < < it.< a href = "tqasciidictiterator.html#current" > current< / a > ()-> text() < < endl;
cout < < endl;
if ( fields["forename"] & & fields["surname"] )
cout < < fields["forename"]-> text() < < " "
< < fields["surname"]-> text() < < endl; // Prints "Homer Simpson"
fields.< a href = "#remove" > remove< / a > ( "forename" ); // Does not delete the line edit
if ( ! fields["forename"] )
cout < < "forename is not in the dictionary" < < endl;
< / pre >
In this example we use a dictionary to keep track of the line
edits we're using. We insert each line edit into the dictionary
with a unique name and then access the line edits via the
dictionary. See < a href = "tqptrdict.html" > TQPtrDict< / a > , < a href = "tqintdict.html" > TQIntDict< / a > and < a href = "tqdict.html" > TQDict< / a > .
< p > See TQDict for full details, including the choice of dictionary
size, and how deletions are handled.
< p > < p > See also < a href = "tqasciidictiterator.html" > TQAsciiDictIterator< / a > , < a href = "tqdict.html" > TQDict< / a > , < a href = "tqintdict.html" > TQIntDict< / a > , < a href = "tqptrdict.html" > TQPtrDict< / a > , < a href = "collection.html" > Collection Classes< / a > , < a href = "collection.html" > Collection Classes< / a > , and < a href = "tools.html" > Non-GUI Classes< / a > .
< hr > < h2 > Member Function Documentation< / h2 >
< h3 class = fn > < a name = "TQAsciiDict" > < / a > TQAsciiDict::TQAsciiDict ( int size = 17, bool caseSensitive = TRUE, bool copyKeys = TRUE )
< / h3 >
< p > Constructs a dictionary optimized for less than < em > size< / em > entries.
< p > We recommend setting < em > size< / em > to a suitably large < a href = "primes.html#prime" > prime< / a > number (a
bit larger than the expected number of entries). This makes the
hash distribution better and will improve lookup performance.
< p > When < em > caseSensitive< / em > is TRUE (the default) TQAsciiDict treats
"abc" and "Abc" as different keys; when it is FALSE "abc" and
"Abc" are the same. Case-insensitive comparison only considers the
26 letters in US-ASCII.
< p > If < em > copyKeys< / em > is TRUE (the default), the dictionary copies keys
using strcpy(); if it is FALSE, the dictionary just copies the
pointers.
< h3 class = fn > < a name = "TQAsciiDict-2" > < / a > TQAsciiDict::TQAsciiDict ( const < a href = "tqasciidict.html" > TQAsciiDict< / a > < type> & dict )
< / h3 >
< p > Constructs a copy of < em > dict< / em > .
< p > Each item in < em > dict< / em > is inserted into this dictionary. Only the
pointers are copied (shallow copy).
< h3 class = fn > < a name = "~TQAsciiDict" > < / a > TQAsciiDict::~TQAsciiDict ()
< / h3 >
< p > Removes all items from the dictionary and destroys it.
< p > The items are deleted if auto-delete is enabled.
< p > All iterators that access this dictionary will be reset.
< p > < p > See also < a href = "tqptrcollection.html#setAutoDelete" > setAutoDelete< / a > ().
< h3 class = fn > bool < a name = "autoDelete" > < / a > TQPtrCollection::autoDelete () const
< / h3 >
< p > Returns the setting of the auto-delete option. The default is FALSE.
< p > < p > See also < a href = "tqptrcollection.html#setAutoDelete" > setAutoDelete< / a > ().
< h3 class = fn > void < a name = "clear" > < / a > TQAsciiDict::clear ()< tt > [virtual]< / tt >
< / h3 >
< p > Removes all items from the dictionary.
< p > The removed items are deleted if < a href = "tqptrcollection.html#setAutoDelete" > auto-deletion< / a > is enabled.
< p > All dictionary iterators that operate on dictionary are reset.
< p > < p > See also < a href = "#remove" > remove< / a > (), < a href = "#take" > take< / a > (), and < a href = "tqptrcollection.html#setAutoDelete" > setAutoDelete< / a > ().
< p > Reimplemented from < a href = "tqptrcollection.html#clear" > TQPtrCollection< / a > .
< h3 class = fn > uint < a name = "count" > < / a > TQAsciiDict::count () const< tt > [virtual]< / tt >
< / h3 >
< p > Returns the number of items in the dictionary.
< p > < p > See also < a href = "#isEmpty" > isEmpty< / a > ().
< p > Reimplemented from < a href = "tqptrcollection.html#count" > TQPtrCollection< / a > .
< h3 class = fn > type * < a name = "find" > < / a > TQAsciiDict::find ( const char * key ) const
< / h3 >
< p > Returns the item associated with < em > key< / em > , or 0 if the key does not
exist in the dictionary.
< p > This function uses an internal hashing algorithm to optimize
lookup.
< p > If there are two or more items with equal keys, then the item that
was most recently inserted will be found.
< p > Equivalent to the [] operator.
< p > < p > See also < a href = "#operator[]" > operator[]< / a > ().
< h3 class = fn > void < a name = "insert" > < / a > TQAsciiDict::insert ( const char * key, const type * item )
< / h3 >
< p > Inserts the < em > key< / em > with the < em > item< / em > into the dictionary.
< p > Multiple items can have the same key, in which case only the last
item will be accessible using < a href = "#operator[]" > operator[]< / a > ().
< p > < em > item< / em > may not be 0.
< p > < p > See also < a href = "#replace" > replace< / a > ().
< h3 class = fn > bool < a name = "isEmpty" > < / a > TQAsciiDict::isEmpty () const
< / h3 >
< p > Returns TRUE if the dictionary is empty, i.e. < a href = "#count" > count< / a > () == 0;
otherwise it returns FALSE.
< p > < p > See also < a href = "#count" > count< / a > ().
< h3 class = fn > < a href = "tqasciidict.html" > TQAsciiDict< / a > < type> & < a name = "operator-eq" > < / a > TQAsciiDict::operator= ( const < a href = "tqasciidict.html" > TQAsciiDict< / a > < type> & dict )
< / h3 >
< p > Assigns < em > dict< / em > to this dictionary and returns a reference to this
dictionary.
< p > This dictionary is first cleared and then each item in < em > dict< / em > is
inserted into this dictionary. Only the pointers are copied
(shallow copy) unless < a href = "tqptrcollection.html#newItem" > newItem< / a > () has been reimplemented().
< h3 class = fn > type * < a name = "operator[]" > < / a > TQAsciiDict::operator[] ( const char * key ) const
< / h3 >
< p > Returns the item associated with < em > key< / em > , or 0 if the key does
not exist in the dictionary.
< p > This function uses an internal hashing algorithm to optimize
lookup.
< p > If there are two or more items with equal keys, then the item that
was most recently inserted will be found.
< p > Equivalent to the < a href = "#find" > find< / a > () function.
< p > < p > See also < a href = "#find" > find< / a > ().
< h3 class = fn > < a href = "tqdatastream.html" > TQDataStream< / a > & < a name = "read" > < / a > TQAsciiDict::read ( < a href = "tqdatastream.html" > TQDataStream< / a > & s, < a href = "tqptrcollection.html#Item" > TQPtrCollection::Item< / a > & item )< tt > [virtual protected]< / tt >
< / h3 >
< p > Reads a dictionary item from the stream < em > s< / em > and returns a
reference to the stream.
< p > The default implementation sets < em > item< / em > to 0.
< p > < p > See also < a href = "#write" > write< / a > ().
< h3 class = fn > bool < a name = "remove" > < / a > TQAsciiDict::remove ( const char * key )
< / h3 >
< p > Removes the item associated with < em > key< / em > from the dictionary.
Returns TRUE if successful, i.e. if the key existed in the
dictionary; otherwise returns FALSE.
< p > If there are two or more items with equal keys, then the most
recently inserted item will be removed.
< p > The removed item is deleted if < a href = "tqptrcollection.html#setAutoDelete" > auto-deletion< / a > is enabled.
< p > All dictionary iterators that refer to the removed item will be
set to point to the next item in the dictionary traversal order.
< p > < p > See also < a href = "#take" > take< / a > (), < a href = "#clear" > clear< / a > (), and < a href = "tqptrcollection.html#setAutoDelete" > setAutoDelete< / a > ().
< h3 class = fn > void < a name = "replace" > < / a > TQAsciiDict::replace ( const char * key, const type * item )
< / h3 >
< p > Replaces an item that has a key equal to < em > key< / em > with < em > item< / em > .
< p > If the item does not already exist, it will be inserted.
< p > < em > item< / em > may not be 0.
< p > Equivalent to:
< pre >
TQAsciiDict< char> dict;
...
if ( dict.< a href = "#find" > find< / a > (key) )
dict.< a href = "#remove" > remove< / a > ( key );
dict.< a href = "#insert" > insert< / a > ( key, item );
< / pre >
< p > If there are two or more items with equal keys, then the most
recently inserted item will be replaced.
< p > < p > See also < a href = "#insert" > insert< / a > ().
< h3 class = fn > void < a name = "resize" > < / a > TQAsciiDict::resize ( uint newsize )
< / h3 >
< p > Changes the size of the hashtable to < em > newsize< / em > . The contents of
the dictionary are preserved but all iterators on the dictionary
become invalid.
< h3 class = fn > void < a name = "setAutoDelete" > < / a > TQPtrCollection::setAutoDelete ( bool enable )
< / h3 >
< p > Sets the collection to auto-delete its contents if < em > enable< / em > is
TRUE and to never delete them if < em > enable< / em > is FALSE.
< p > If auto-deleting is turned on, all the items in a collection are
deleted when the collection itself is deleted. This is convenient
if the collection has the only pointer to the items.
< p > The default setting is FALSE, for safety. If you turn it on, be
careful about copying the collection - you might find yourself
with two collections deleting the same items.
< p > Note that the auto-delete setting may also affect other functions
in subclasses. For example, a subclass that has a < a href = "#remove" > remove< / a > ()
function will remove the item from its data structure, and if
auto-delete is enabled, will also delete the item.
< p > < p > See also < a href = "tqptrcollection.html#autoDelete" > autoDelete< / a > ().
< p > Examples: < a href = "scribble-example.html#x924" > scribble/scribble.cpp< / a > and < a href = "bigtable-example.html#x1291" > table/bigtable/main.cpp< / a > .
< h3 class = fn > uint < a name = "size" > < / a > TQAsciiDict::size () const
< / h3 >
< p > Returns the size of the internal hash array (as specified in the
constructor).
< p > < p > See also < a href = "#count" > count< / a > ().
< h3 class = fn > void < a name = "statistics" > < / a > TQAsciiDict::statistics () const
< / h3 >
< p > Debugging-only function that prints out the dictionary
distribution using < a href = "tqapplication.html#qDebug" > tqDebug< / a > ().
< h3 class = fn > type * < a name = "take" > < / a > TQAsciiDict::take ( const char * key )
< / h3 >
< p > Takes the item associated with < em > key< / em > out of the dictionary
without deleting it (even if < a href = "tqptrcollection.html#setAutoDelete" > auto-deletion< / a > is enabled).
< p > If there are two or more items with equal keys, then the most
recently inserted item will be taken.
< p > Returns a pointer to the item taken out, or 0 if the key does not
exist in the dictionary.
< p > All dictionary iterators that refer to the taken item will be set
to point to the next item in the dictionary traversal order.
< p > < p > See also < a href = "#remove" > remove< / a > (), < a href = "#clear" > clear< / a > (), and < a href = "tqptrcollection.html#setAutoDelete" > setAutoDelete< / a > ().
< h3 class = fn > < a href = "tqdatastream.html" > TQDataStream< / a > & < a name = "write" > < / a > TQAsciiDict::write ( < a href = "tqdatastream.html" > TQDataStream< / a > & s, < a href = "tqptrcollection.html#Item" > TQPtrCollection::Item< / a > ) const< tt > [virtual protected]< / tt >
< / h3 >
< p > Writes a dictionary item to the stream < em > s< / em > and returns a
reference to the stream.
< p > < p > See also < a href = "#read" > read< / a > ().
<!-- eof -->
< hr > < p >
This file is part of the < a href = "index.html" > TQt toolkit< / a > .
Copyright © 1995-2007
< a href = "http://www.trolltech.com/" > Trolltech< / a > . All Rights Reserved.< p > < address > < hr > < div align = center >
< table width = 100% cellspacing = 0 border = 0 > < tr >
< td > Copyright © 2007
< a href = "troll.html" > Trolltech< / a > < td align = center > < a href = "trademarks.html" > Trademarks< / a >
< td align = right > < div align = right > TQt 3.3.8< / div >
< / table > < / div > < / address > < / body >
< / html >