Movatterモバイル変換


[0]ホーム

URL:


We bake cookies in your browser for a better experience. Using this site means that you consent.Read More

Menu

Qt Documentation

  • Qt 4.8
  • Qt3SupportLight
  • Q3IntDict

Q3IntDict Class

TheQ3IntDict class is a template class that provides a dictionary based on long keys.More...

Header:#include <Q3IntDict>
Inherits:Q3PtrCollection

Public Functions

Q3IntDict(int size = 17)
Q3IntDict(const Q3IntDict<type> & dict)
~Q3IntDict()
type *find(long key) const
voidinsert(long key, const type * item)
boolisEmpty() const
boolremove(long key)
voidreplace(long key, const type * item)
voidresize(uint newsize)
uintsize() const
voidstatistics() const
type *take(long key)
Q3IntDict<type> &operator=(const Q3IntDict<type> & dict)
type *operator[](long key) const

Reimplemented Public Functions

virtual voidclear()
virtual uintcount() const

Protected Functions

virtual QDataStream &read(QDataStream & s, Q3PtrCollection::Item & item)
virtual QDataStream &write(QDataStream & s, Q3PtrCollection::Item item) const

Detailed Description

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.

Member Function Documentation

Q3IntDict::Q3IntDict(int size = 17)

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.

Q3IntDict::Q3IntDict(constQ3IntDict<type> & dict)

Constructs a copy ofdict.

Each item indict is inserted into this dictionary. Only the pointers are copied (shallow copy).

Q3IntDict::~Q3IntDict()

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() const

Reimplemented fromQ3PtrCollection::count().

Returns the number of items in the dictionary.

See alsoisEmpty().

type * Q3IntDict::find(long key) const

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[]().

void Q3IntDict::insert(long key, consttype * item)

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().

bool Q3IntDict::isEmpty() const

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().

bool Q3IntDict::remove(long key)

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().

void Q3IntDict::replace(long key, consttype * item)

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:

Q3IntDict<char> dict;//      ...if ( dict.find(key) )    dict.remove( key );dict.insert( key, item );

If there are two or more items with equal keys, then the most recently inserted item will be replaced.

See alsoinsert().

void Q3IntDict::resize(uint newsize)

Changes the size of the hashtable tonewsize. The contents of the dictionary are preserved, but all iterators on the dictionary become invalid.

uint Q3IntDict::size() const

Returns the size of the internal hash array (as specified in the constructor).

See alsocount().

void Q3IntDict::statistics() const

Debugging-only function that prints out the dictionary distribution usingqDebug().

type * Q3IntDict::take(long key)

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) const

Writes a dictionaryitem to the streams and returns a reference to the stream.

See alsoread().

Q3IntDict<type> & Q3IntDict::operator=(constQ3IntDict<type> & dict)

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.

type * Q3IntDict::operator[](long key) const

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.


[8]ページ先頭

©2009-2025 Movatter.jp