
We bake cookies in your browser for a better experience. Using this site means that you consent.Read More
TheQ3IntDict class is a template class that provides a dictionary based on long keys.More...
| Header: | #include <Q3IntDict> |
| Inherits: | Q3PtrCollection |
| Q3IntDict(int size = 17) | |
| Q3IntDict(const Q3IntDict<type> & dict) | |
| ~Q3IntDict() | |
| type * | find(long key) const |
| void | insert(long key, const type * item) |
| bool | isEmpty() const |
| bool | remove(long key) |
| void | replace(long key, const type * item) |
| void | resize(uint newsize) |
| uint | size() const |
| void | statistics() const |
| type * | take(long key) |
| Q3IntDict<type> & | operator=(const Q3IntDict<type> & dict) |
| type * | operator[](long key) const |
| virtual QDataStream & | read(QDataStream & s, Q3PtrCollection::Item & item) |
| virtual QDataStream & | write(QDataStream & s, Q3PtrCollection::Item item) const |
TheQ3IntDict class is a template class that provides a dictionary based on long keys.
Q3IntDict is implemented as a template class. Define a template instanceQ3IntDict<X> to create a dictionary that operates on pointers to X (X*).
A dictionary is a collection of key-value pairs. The key is anlong used for insertion, removal and lookup. The value is a pointer. Dictionaries provide very fast insertion and lookup.
Example:
Q3IntDict<QLineEdit> fields;// long int keys, QLineEdit* valuesfor (int i=0; i<3; i++ ) fields.insert( i,newQLineEdit(this ) );fields[0]->setText("Homer" );fields[1]->setText("Simpson" );fields[2]->setText("45" );Q3IntDictIterator<QLineEdit> it( fields );for ( ; it.current();++it ) cout<< it.currentKey()<<": "<< it.current()->text()<< endl;for (int i=0; i<3; i++ ) cout<< fields[i]->text()<<" ";// Prints "Homer Simpson 45"cout<< endl;fields.remove(1 );// Does not delete the line editfor (int i=0; i<3; i++ )if ( fields[i] ) cout<< fields[i]->text()<<" ";// Prints "Homer 45"
SeeQ3Dict for full details, including the choice of dictionary size, and how deletions are handled.
See alsoQ3IntDictIterator,Q3Dict,Q3AsciiDict, andQ3PtrDict.
Constructs a dictionary using an internal hash array of sizesize.
Settingsize to a suitably large prime number (equal to or greater than the expected number of entries) makes the hash distribution better which leads to faster lookup.
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 Q3IntDict::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 Q3IntDict::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[]().
Insert itemitem into the dictionary using keykey.
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 & Q3IntDict::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. if thekey 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's 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 hashtable tonewsize. The contents of the dictionary are preserved, but all iterators on the dictionary become invalid.
Returns the size of the internal hash array (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 taken.
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's traversing order.
See alsoremove(),clear(), andsetAutoDelete().
[virtual protected]QDataStream & Q3IntDict::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 this 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.