Loading...
Searching...
No Matches
OFUnorderedSet< T > Class Template Reference

This template class provides a data structure and operations for administrating an unordered set of elements of an arbitrary type. More...

Inheritance diagram for OFUnorderedSet< T >:

## Public Member Functions

| OFUnorderedSet ()
| Default constructor.
| OFUnorderedSet (const OFUnorderedSet< T > &src)
| Copy constructor.
virtual | ~OFUnorderedSet ()
| Destructor.
const OFUnorderedSet< T > & | operator= (const OFUnorderedSet< T > &src)
| operator=.
virtual OFBool | operator== (const OFUnorderedSet< T > &other) const
| Determines if two sets are identical.
virtual OFBool | operator!= (const OFUnorderedSet< T > &other) const
| Determines if two sets are not identical.
virtual void | Insert (const T &item)
| Inserts a new item into the set.
virtual void | Insert (const OFUnorderedSet< T > &other)
| Inserts all items of another set into this set.
virtual void | Remove (const T &item)
| Removes one item from the set.
virtual void | RemoveByIndex (unsigned int index)
| Removes one item from the set.
virtual T * | Find (const T &item) const
| Tries to find a given object in the set.
virtual OFBool | Contains (const T &item) const
| Determines if a certain item is contained in the set.
virtual OFBool | IsSupersetOf (const OFUnorderedSet< T > &other) const
| Determines if this is an actual superset of other, i.e.
virtual OFBool | IsSubsetOf (const OFUnorderedSet< T > &other) const
| Determines if this is an actual subset of other, i.e.
OFUnorderedSet< T > | Union (const OFUnorderedSet< T > &other) const
| Determines the union of the two sets this and other, i.e.
OFUnorderedSet< T > | Intersection (const OFUnorderedSet< T > &other) const
| Determines the intersection of the two sets this and other, i.e.
OFUnorderedSet< T > | Difference (const OFUnorderedSet< T > &other) const
| Determines the difference this - other, i.e.
OFUnorderedSet< T > | SymmetricDifference (const OFUnorderedSet< T > &other) const
| Determines the symmetric difference of this and other, i.e.
Public Member Functions inherited from OFSet< T >
| OFSet ()
| Default constructor.
void | init ()
| This function is a workaround for avoiding a compiler warning on Solaris 2.5.1 using compiler SC 2.0.1.
| OFSet (const OFSet< T > &src)
| Copy constructor.
void | init (const OFSet< T > &src)
| This function is a workaround for avoiding a compiler warning on Solaris 2.5.1 using compiler SC 2.0.1.
virtual | ~OFSet ()
| Destructor.
const OFSet< T > & | operator= (const OFSet< T > &src)
| operator=.
virtual T & | operator[] (unsigned int i) const
| Returns a certain element which is contained in the set.
virtual void | Resize (unsigned int newSize)
| Resizes the set.
virtual void | Clear ()
| Removes all items from the set.
virtual OFBool | IsEmpty () const
| Determines if the set is an empty set.
virtual unsigned int | NumberOfElements () const
| Returns the number of elements in the set.

## Additional Inherited Members

Protected Attributes inherited from OFSet< T >
T ** | items
| array containing the entries
unsigned int | num
| number of entries in the set
unsigned int | size
| current size of the set (always >= num)

## Detailed Description

template<class T>
class OFUnorderedSet< T >

This template class provides a data structure and operations for administrating an unordered set of elements of an arbitrary type.

Note the following properties of this class:

- an element which is inserted into the set will be copied
- the datatype of the set's elements has to support operator== so that it is possible to find a certain element
- it is allowed to insert identical elements into the set
- if a user requires to remove a certain element and if there are several elements which are identical to this element, only one element will be removed from the set
- after removing an element of a set, the indices of the set's elements might have changed; hence, looping over all elements of a set must be restarted if an element was removed from the set within the loop
- the order of the elements is arbitrary, but it will not be changed unless an element is removed from the set

## Constructor & Destructor Documentation

## OFUnorderedSet()

template<class T>

OFUnorderedSet< T >::OFUnorderedSet | ( | const OFUnorderedSet< T > & | src | ) |

inline

Copy constructor.

Parameters

  src | Source object of which this will be a copy.

References OFSet< T >::OFSet(), and OFUnorderedSet().

## Member Function Documentation

## Contains()

template<class T>

virtual OFBool OFUnorderedSet< T >::Contains | ( | const T & | item | ) | const

inline virtual

Determines if a certain item is contained in the set.

Parameters

  item | - Item which shall be looked for.

Returns
  OFTrue, if item is contained in the set, OFFalse otherwise.

Implements OFSet< T >.

References OFSet< T >::items.

Referenced by Difference(), Intersection(), IsSupersetOf(), and operator==().

## Difference()

template<class T>

OFUnorderedSet< T > OFUnorderedSet< T >::Difference | ( | const OFUnorderedSet< T > & | other | ) | const

inline

Determines the difference this - other, i.e.

the set containing all the items found in this but not in other, and returns the resulting new set.

Parameters

  other | Second parameter for difference.

Returns
  New set.

References OFUnorderedSet(), Contains(), Insert(), OFSet< T >::items, and Remove().

Referenced by SymmetricDifference().

## Find()

template<class T>

virtual T * OFUnorderedSet< T >::Find | ( | const T & | item | ) | const

inline virtual

Tries to find a given object in the set.

In case the specified object could be found, a pointer to the corresponding element within the set is returned; in case the specified object could not be found, NULL will be returned.

Parameters

  item | Search pattern.

Returns
  Pointer to the corresponding element within the set or NULL.

Implements OFSet< T >.

References OFSet< T >::items.

## Insert() [1/2]

template<class T>

virtual void OFUnorderedSet< T >::Insert | ( | const OFUnorderedSet< T > & | other | ) |

inline virtual

Inserts all items of another set into this set.

Parameters

  other | set whose items shall be inserted into the set.

References OFUnorderedSet(), Insert(), OFSet< T >::items, and OFSet< T >::num.

## Insert() [2/2]

template<class T>

virtual void OFUnorderedSet< T >::Insert | ( | const T & | item | ) |

inline virtual

Inserts a new item into the set.

Parameters

  item | Item which shall be inserted into the set.

Implements OFSet< T >.

References OFSet< T >::items, OFSet< T >::num, OFSet< T >::Resize(), and OFSet< T >::size.

Referenced by Difference(), Insert(), Intersection(), and Union().

## Intersection()

template<class T>

OFUnorderedSet< T > OFUnorderedSet< T >::Intersection | ( | const OFUnorderedSet< T > & | other | ) | const

inline

Determines the intersection of the two sets this and other, i.e.

the set containing all items which can be found in both this and other, and returns the resulting new set.

Parameters

  other | Second parameter for intersection.

Returns
  New set.

References OFUnorderedSet(), Contains(), Insert(), OFSet< T >::items, and Remove().

## IsSubsetOf()

template<class T>

virtual OFBool OFUnorderedSet< T >::IsSubsetOf | ( | const OFUnorderedSet< T > & | other | ) | const

inline virtual

Determines if this is an actual subset of other, i.e.

if this is completely contained in other and other furthermore has additional elements.

Parameters

  other | - Set which shall be compared with this.

Returns
  OFTrue if this is a subset of other, OFFalse otherwise.

References OFUnorderedSet(), and IsSupersetOf().

## IsSupersetOf()

template<class T>

virtual OFBool OFUnorderedSet< T >::IsSupersetOf | ( | const OFUnorderedSet< T > & | other | ) | const

inline virtual

Determines if this is an actual superset of other, i.e.

if this completely contains other and furthermore has additional elements.

Parameters

  other | - Set which shall be compared with this.

Returns
  OFTrue if this is a superset of other, OFFalse otherwise.

References OFUnorderedSet(), Contains(), OFSet< T >::items, OFSet< T >::num, and Remove().

Referenced by IsSubsetOf().

## operator!=()

template<class T>

virtual OFBool OFUnorderedSet< T >::operator!= | ( | const OFUnorderedSet< T > & | other | ) | const

inline virtual

Determines if two sets are not identical.

Parameters

  other | Set which shall be compared with this.

Returns
  OFTrue if sets are not identical, OFFalse otherwise.

References OFUnorderedSet().

## operator=()

template<class T>

const OFUnorderedSet< T > & OFUnorderedSet< T >::operator= | ( | const OFUnorderedSet< T > & | src | ) |

inline

operator=.

Parameters

  src | Source object whose values will be assigned to this.

Returns
  Reference to this.

References OFUnorderedSet(), and OFSet< T >::operator=().

## operator==()

template<class T>

virtual OFBool OFUnorderedSet< T >::operator== | ( | const OFUnorderedSet< T > & | other | ) | const

inline virtual

Determines if two sets are identical.

Parameters

  other | Set which shall be compared with this.

Returns
  OFTrue if sets are identical, OFFalse otherwise.

References OFUnorderedSet(), Contains(), OFSet< T >::items, OFSet< T >::num, and Remove().

## Remove()

template<class T>

virtual void OFUnorderedSet< T >::Remove | ( | const T & | item | ) |

inline virtual

Removes one item from the set.

Parameters

  item | Item which shall be removed from the set.

Implements OFSet< T >.

References OFSet< T >::items, and OFSet< T >::num.

Referenced by Difference(), Intersection(), IsSupersetOf(), and operator==().

## RemoveByIndex()

template<class T>

virtual void OFUnorderedSet< T >::RemoveByIndex | ( | unsigned int | index | ) |

inline virtual

Removes one item from the set.

Parameters

  index | Index of the item which shall be removed from the set.

Implements OFSet< T >.

References OFSet< T >::items, and OFSet< T >::num.

## SymmetricDifference()

template<class T>

OFUnorderedSet< T > OFUnorderedSet< T >::SymmetricDifference | ( | const OFUnorderedSet< T > & | other | ) | const

inline

Determines the symmetric difference of this and other, i.e.

the set containing all the items which can be found either in this or in other but not in the intersection of this and other, and returns the resulting new set.

Parameters

  other | Second parameter for symmetric difference.

Returns
  New set.

References OFUnorderedSet(), Difference(), and Union().

## Union()

template<class T>

OFUnorderedSet< T > OFUnorderedSet< T >::Union | ( | const OFUnorderedSet< T > & | other | ) | const

inline

Determines the union of the two sets this and other, i.e.

the set containing all items which can be found either in this or in other, and returns the resulting new set.

Parameters

  other | Second parameter for union.

Returns
  New set.

References OFUnorderedSet(), and Insert().

Referenced by SymmetricDifference().

The documentation for this class was generated from the following file:

- ofstd/include/dcmtk/ofstd/ofuoset.h

Generated on for DCMTK Version 3.7.0 by Doxygen 1.15.0