
We bake cookies in your browser for a better experience. Using this site means that you consent.Read More
TheQ3PtrDict class is a template class that provides a dictionary based on void* keys.More...
| Header: | #include <Q3PtrDict> |
| Inherits: | Q3PtrCollection |
| Q3PtrDict(int size = 17) | |
| Q3PtrDict(const Q3PtrDict<type> & dict) | |
| ~Q3PtrDict() | |
| type * | find(void * key) const |
| void | insert(void * key, const type * item) |
| bool | isEmpty() const |
| bool | remove(void * key) |
| void | replace(void * key, const type * item) |
| void | resize(uint newsize) |
| uint | size() const |
| void | statistics() const |
| type * | take(void * key) |
| Q3PtrDict<type> & | operator=(const Q3PtrDict<type> & dict) |
| type * | operator[](void * key) const |
| virtual QDataStream & | read(QDataStream & s, Q3PtrCollection::Item & item) |
| virtual QDataStream & | write(QDataStream & s, Q3PtrCollection::Item item) const |
TheQ3PtrDict class is a template class that provides a dictionary based on void* keys.
Q3PtrDict is implemented as a template class. Define a template instanceQ3PtrDict<X> to create a dictionary that operates on pointers to X (X*).
A dictionary is a collection of key-value pairs. The key is a void* used for insertion, removal and lookup. The value is a pointer. Dictionaries provide very fast insertion and lookup.
Example:
Q3PtrDict<char> fields;// void* keys, char* valuesQLineEdit*le1=newQLineEdit(this );le1->setText("Simpson" );QLineEdit*le2=newQLineEdit(this );le2->setText("Homer" );QLineEdit*le3=newQLineEdit(this );le3->setText("45" );fields.insert( le1,"Surname" );fields.insert( le2,"Forename" );fields.insert( le3,"Age" );Q3PtrDictIterator<char> it( fields );for( ; it.current();++it ) cout<< it.current()<< endl;cout<< endl;if ( fields[le1] )// Prints "Surname: Simpson" cout<< fields[le1]<<": "<< le1->text()<< endl;if ( fields[le2] )// Prints "Forename: Homer" cout<< fields[le2]<<": "<< le2->text()<< endl;fields.remove( le1 );// Removes le1 from the dictionarycout<< le1->text()<< endl;// Prints "Simpson"
In this example we use a dictionary to add an extra property (a char*) to the line edits we're using.
SeeQ3Dict for full details, including the choice of dictionary size, and how deletions are handled.
See alsoQ3PtrDictIterator,Q3Dict,Q3AsciiDict, andQ3IntDict.
Constructs a dictionary using an internal hash array with the sizesize.
Settingsize to a suitably large prime number (equal to or greater than the expected number of entries) makes the hash distribution better and improves lookup performance.
Constructs a copy ofdict.
Each item indict is inserted into this dictionary. Only the pointers are copied (shallow copy).
Removes all items from the dictionary and destroys it.
All iterators that access this dictionary will be reset.
See alsosetAutoDelete().
[virtual]void Q3PtrDict::clear()Reimplemented fromQ3PtrCollection::clear().
Removes all items from the dictionary.
The removed items are deleted ifauto-deletion is enabled.
All dictionary iterators that access this dictionary will be reset.
See alsoremove(),take(), andsetAutoDelete().
[virtual]uint Q3PtrDict::count() constReimplemented fromQ3PtrCollection::count().
Returns the number of items in the dictionary.
See alsoisEmpty().
Returns the item associated withkey, or 0 if the key does not exist in the dictionary.
If there are two or more items with equal keys, then the most recently inserted item will be found.
Equivalent to operator[].
See alsooperator[]().
Inserts thekey with theitem into the dictionary.
Multiple items can have the same key, in which case only the last item will be accessible usingoperator[]().
item may not be 0.
See alsoreplace().
Returns TRUE if the dictionary is empty; otherwise returns FALSE.
See alsocount().
[virtual protected]QDataStream & Q3PtrDict::read(QDataStream & s,Q3PtrCollection::Item & item)Reads a dictionary item from the streams and returns a reference to the stream.
The default implementation setsitem to 0.
See alsowrite().
Removes the item associated withkey from the dictionary. Returns TRUE if successful, i.e. ifkey is in the dictionary; otherwise returns FALSE.
If there are two or more items with equal keys, then the most recently inserted item will be removed.
The removed item is deleted ifauto-deletion is enabled.
All dictionary iterators that refer to the removed item will be set to point to the next item in the dictionary traversal order.
See alsotake(),clear(), andsetAutoDelete().
If the dictionary has keykey, this key's item is replaced withitem. If the dictionary doesn't contain keykey,item is inserted into the dictionary using keykey.
item may not be 0.
Equivalent to
If there are two or more items with equal keys, then the most recently inserted item will be replaced.
See alsoinsert().
Changes the size of the hash table tonewsize. The contents of the dictionary are preserved, but all iterators on the dictionary become invalid.
Returns the size of the internal hash table (as specified in the constructor).
See alsocount().
Debugging-only function that prints out the dictionary distribution usingqDebug().
Takes the item associated withkey out of the dictionary without deleting it (even ifauto-deletion is enabled).
If there are two or more items with equal keys, then the most recently inserted item will be removed.
Returns a pointer to the item taken out, or 0 if the key does not exist in the dictionary.
All dictionary iterators that refer to the taken item will be set to point to the next item in the dictionary traversal order.
See alsoremove(),clear(), andsetAutoDelete().
[virtual protected]QDataStream & Q3PtrDict::write(QDataStream & s,Q3PtrCollection::Item item) constWrites a dictionaryitem to the streams and returns a reference to the stream.
See alsoread().
Assignsdict to this dictionary and returns a reference to this dictionary.
This dictionary is first cleared and then each item indict is inserted into the dictionary. Only the pointers are copied (shallow copy), unlessnewItem() has been reimplemented.
Returns the item associated withkey, or 0 if the key does not exist in the dictionary.
If there are two or more items with equal keys, then the most recently inserted item will be found.
Equivalent to thefind() function.
See alsofind().
© 2016 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of theGNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.