Symbian
Symbian Developer Library

SYMBIAN OS V9.4

Feedback

[Index] [Previous] [Next]

#include <e32hashtab.h>

Class RHashSet

class RHashSet : public RHashTableBase;

Description

A templated class which implements an unordered extensional set of objects of type T using a probe-sequence hash table. The objects are copied into the set when they are added. A bitwise binary copy is used here, so the type T must not implement a nontrivial copy constructor.

Derivation

Members

Defined in RHashSet:


Construction and destruction


RHashSet(const THashFunction32< T > &,const TIdentityRelation< T > &)

inline RHashSet(const THashFunction32< T > &aHash, const TIdentityRelation< T > &aIdentity);

Description

Construct a set of objects of type T using a specified hash function and identity relation. The set is initially empty.

Parameters

const THashFunction32< T > &aHash

The hash function used to hash the objects of type T.

const TIdentityRelation< T > &aIdentity

The identity relation used to determine if two objects of type T should be considered identical.


RHashSet()

inline RHashSet();

Description

Construct a set of objects of type T using a default hash function and identity relation. The set is initially empty.

[Top]


Member functions


Close()

inline void Close();

Description

Free all memory used by this set. Returns the set to the same state it had following construction.


Find(const T &)const

inline const T* Find(const T &aKey) const;

Description

Locate a specified element in the set.

Parameters

const T &aKey

The object of type T to search for.

Return value

const T *

A pointer to the copy of the specified object in the set, if it exists. The object may not be modified via this pointer. NULL if the specified object is not a member of this set.


FindL(const T &)const

inline const T& FindL(const T &aKey) const;

Description

Locate a specified element in the set.

Parameters

const T &aKey

The object of type T to search for.

Return value

const T &

A reference to the copy of the specified object in the set, if it exists. The object may not be modified via this reference.

Leave codes

KErrNotFound

if the specified object is not a member of this set.


Find(const T &)

inline T* Find(const T &aKey);

Description

Locate a specified element in the set.

Parameters

const T &aKey

The object of type T to search for.

Return value

T *

A pointer to the copy of the specified object in the set, if it exists. The object may be modified via this pointer. Care should be taken not to modify any parts of the object which are used by either the hash function or the identity relation for this set. If this is done the set may become inconsistent, resulting in malfunctions and/or panics at a later time. NULL if the specified object is not a member of this set.


FindL(const T &)

inline T& FindL(const T &aKey);

Description

Locate a specified element in the set.

Parameters

const T &aKey

The object of type T to search for.

Return value

T &

A reference to the copy of the specified object in the set, if it exists. The object may be modified via this reference. Care should be taken not to modify any parts of the object which are used by either the hash function or the identity relation for this set. If this is done the set may become inconsistent, resulting in malfunctions and/or panics at a later time.

Leave codes

KErrNotFound

if the specified object is not a member of this set.


Insert(const T &)

inline TInt Insert(const T &aKey);

Description

Insert an element into the set.

If the specified object is not currently a member of the set, a copy of the object is added to the set and KErrNone is returned. If the specified object is currently a member of the set, the existing copy of the object is replaced by the provided object and KErrNone is returned. In both cases the object is copied bitwise into the set.

Parameters

const T &aKey

The object of type T to add to the set.

Return value

TInt

KErrNone if the object was added successfully. KErrNoMemory if memory could not be allocated to store the copy of aKey.


InsertL(const T &)

inline void InsertL(const T &aKey);

Description

Insert an element into the set.

If the specified object is not currently a member of the set, a copy of the object is added to the set and KErrNone is returned. If the specified object is currently a member of the set, the existing copy of the object is replaced by the provided object and KErrNone is returned. In both cases the object is copied bitwise into the set.

Parameters

const T &aKey

The object of type T to add to the set.

Leave codes

KErrNoMemory

if memory could not be allocated to store the copy of aKey.


Remove(const T &)

inline TInt Remove(const T &aKey);

Description

Remove an element from the set.

Parameters

const T &aKey

The object to be removed.

Return value

TInt

KErrNone if the object was removed successfully. KErrNotFound if the object was not present in the set.


Count()const

inline TInt Count() const;

Description

Query the number of elements in the set.

Return value

TInt

The number of elements currently in the set.


Reserve(TInt)

inline TInt Reserve(TInt aCount);

Description

Expand the set to accommodate a specified number of elements. If the set already has enough space for the specified number of elements, no action is taken. Any elements already in the set are retained.

Parameters

TInt aCount

The number of elements for which space should be allocated.

Return value

TInt

KErrNone if the operation completed successfully. KErrNoMemory if sufficient memory could not be allocated.


ReserveL(TInt)

inline void ReserveL(TInt aCount);

Description

Expand the set to accommodate a specified number of elements. If the set already has enough space for the specified number of elements, no action is taken. Any elements already in the set are retained.

Parameters

TInt aCount

The number of elements for which space should be allocated.

Leave codes

KErrNoMemory

if sufficient memory could not be allocated.

[Top]


Member type definitions


Typedef TIter

typedef THashSetIter<T> RHashSet< T >::TIter;

Description

A class which allows iteration over the elements of a RHashSet<T> class.

The set being iterated over may not be modified while an iteration is in progress or the iteration operations may malfunction or panic.