Chemical Data Processing Library C++ API - Version 1.2.0
|
A dynamic array class for the storage of object pointers with an indirected query interface. More...
#include <IndirectArray.hpp>
Public Types | |
typedef Array< PointerType > | BaseType |
The type of the public Array<PointerType> base class storing the pointer elements. More... | |
typedef ValueType | ElementType |
The type of the object that is obtained after dereferenciation of a stored pointer element. More... | |
typedef std::shared_ptr< IndirectArray > | SharedPointer |
A reference-counted smart pointer [SHPTR] for dynamically allocated IndirectArray instances. More... | |
typedef boost::transform_iterator< DerefFunc, typename BaseType::ConstElementIterator, const ValueType & > | ConstElementIterator |
A constant random access iterator used to iterate over the pointed-to objects. More... | |
typedef boost::transform_iterator< DerefFunc, typename BaseType::ConstReverseElementIterator, const ValueType & > | ConstReverseElementIterator |
A constant random access iterator used to iterate over the pointed-to objects in reverse order. More... | |
typedef boost::transform_iterator< DerefFunc, typename BaseType::ElementIterator, ValueType & > | ElementIterator |
A mutable random access iterator used to iterate over the pointed-to objects. More... | |
typedef boost::transform_iterator< DerefFunc, typename BaseType::ReverseElementIterator, ValueType & > | ReverseElementIterator |
A mutable random access iterator used to iterate over the pointed-to objects in reverse order. More... | |
Public Types inherited from CDPL::Util::Array< typename ValueType::SharedPointer > | |
typedef std::vector< typename ValueType::SharedPointer > | StorageType |
typedef std::shared_ptr< Array > | SharedPointer |
A reference-counted smart pointer [SHPTR] for dynamically allocated Array instances. More... | |
typedef typename ValueType::SharedPointer | ElementType |
The type of objects stored by the array. More... | |
typedef std::size_t | SizeType |
The type of objects stored by the array. More... | |
typedef Array | BaseType |
Specifies for derived classes the type of the Array base class. More... | |
typedef StorageType::const_iterator | ConstElementIterator |
A constant random access iterator used to iterate over the elements of the array. More... | |
typedef StorageType::const_reverse_iterator | ConstReverseElementIterator |
A constant random access iterator used to iterate over the elements of the array in reverse order. More... | |
typedef StorageType::iterator | ElementIterator |
A mutable random access iterator used to iterate over the elements of the array. More... | |
typedef StorageType::reverse_iterator | ReverseElementIterator |
A mutable random access iterator used to iterate over the elements of the array in reverse order. More... | |
Public Member Functions | |
IndirectArray () | |
Creates an empty array. More... | |
IndirectArray (std::size_t num_elem, const PointerType &ptr=PointerType()) | |
Creates and initializes the array with num_elem copies of ptr. More... | |
template<typename InputIter > | |
IndirectArray (const InputIter &first, const InputIter &last) | |
Creates and initializes the array with copies of the pointers in the range [first, last). More... | |
virtual | ~IndirectArray () |
Virtual destructor. More... | |
ElementIterator | insertElement (const ElementIterator &it, const PointerType &ptr) |
Inserts a new element before the location specified by the iterator it. More... | |
void | insertElements (const ElementIterator &it, std::size_t num_elem, const PointerType &ptr) |
Inserts num_elem copies of ptr before the location specified by the iterator it. More... | |
template<typename InputIter > | |
void | insertElements (const ElementIterator &it, const InputIter &first, const InputIter &last) |
Inserts the range of pointers [first, last) before the location specified by the iterator it. More... | |
ElementIterator | removeElement (const ElementIterator &it) |
Removes the element at the position specified by the iterator it. More... | |
ElementIterator | removeElements (const ElementIterator &first, const ElementIterator &last) |
Removes the elements pointed to by the iterators in the range [first, last). More... | |
const ValueType & | getFirstElement () const |
Returns a const reference to the object pointed to by the first element of the array. More... | |
const ValueType & | getLastElement () const |
Returns a const reference to the object pointed to by the last element of the array. More... | |
ValueType & | getFirstElement () |
Returns a non-const reference to the object pointed to by the first element of the array. More... | |
ValueType & | getLastElement () |
Returns a non-const reference to the object pointed to by the last element of the array. More... | |
ConstElementIterator | getElementsBegin () const |
Returns a constant iterator over the pointed-to objects that points to the beginning of the array. More... | |
ElementIterator | getElementsBegin () |
Returns a mutable iterator over the pointed-to objects that points to the beginning of the array. More... | |
ConstElementIterator | getElementsEnd () const |
Returns a constant iterator over the pointed-to objects that points to the end of the array. More... | |
ElementIterator | getElementsEnd () |
Returns a mutable iterator over the pointed-to objects that points to the end of the array. More... | |
ConstElementIterator | begin () const |
Returns a constant iterator over the pointed-to objects that points to the beginning of the array. More... | |
ElementIterator | begin () |
Returns a mutable iterator over the pointed-to objects that points to the beginning of the array. More... | |
ConstElementIterator | end () const |
Returns a constant iterator over the pointed-to objects that points to the end of the array. More... | |
ElementIterator | end () |
Returns a mutable iterator over the pointed-to objects that points to the end of the array. More... | |
ConstReverseElementIterator | getElementsReverseBegin () const |
Returns a constant iterator over the pointed-to objects that points to the beginning of the reversed array. More... | |
ReverseElementIterator | getElementsReverseBegin () |
Returns a mutable iterator over the pointed-to objects that points to the beginning of the reversed array. More... | |
ConstReverseElementIterator | getElementsReverseEnd () const |
Returns a constant iterator over the pointed-to objects that points to the end of the reversed array. More... | |
ReverseElementIterator | getElementsReverseEnd () |
Returns a mutable iterator over the pointed-to objects that points to the end of the reversed array. More... | |
const ValueType & | getElement (std::size_t idx) const |
Returns a const reference to the object pointed-to by the pointer element at index idx. More... | |
ValueType & | getElement (std::size_t idx) |
Returns a non-const reference to the object pointed-to by the pointer element at index idx. More... | |
const ValueType & | operator[] (std::size_t idx) const |
Returns a const reference to the object pointed-to by the pointer element at index idx. More... | |
ValueType & | operator[] (std::size_t idx) |
Returns a non-const reference to the object pointed-to by the pointer element at index idx. More... | |
void | insertElement (std::size_t idx, const ValueType &value=ValueType()) |
Inserts a new element before the location specified by the index idx. More... | |
ElementIterator | insertElement (const ElementIterator &it, const ValueType &value=ValueType()) |
Inserts a new element before the location specified by the iterator it. More... | |
void | insertElements (std::size_t idx, std::size_t num_elem, const ValueType &value=ValueType()) |
Inserts num_elem copies of value before the location specified by the index idx. More... | |
void | insertElements (const ElementIterator &it, std::size_t num_elem, const ValueType &value=ValueType()) |
Inserts num_elem copies of value before the location specified by the iterator it. More... | |
template<typename InputIter > | |
void | insertElements (std::size_t idx, const InputIter &first, const InputIter &last) |
Inserts the range of elements [first, last) before the location specified by the index idx. More... | |
template<typename InputIter > | |
void | insertElements (const ElementIterator &it, const InputIter &first, const InputIter &last) |
Inserts the range of elements [first, last) before the location specified by the iterator it. More... | |
void | removeElement (std::size_t idx) |
Removes the element at the position specified by the index idx. More... | |
ElementIterator | removeElement (const ElementIterator &it) |
Removes the element at the position specified by the iterator it. More... | |
ElementIterator | removeElements (const ElementIterator &first, const ElementIterator &last) |
Removes the elements pointed to by the iterators in the range [first, last). More... | |
Public Member Functions inherited from CDPL::Util::Array< typename ValueType::SharedPointer > | |
Array () | |
Creates an empty array. More... | |
Array (std::size_t num_elem, const typename ValueType::SharedPointer &value=typename ValueType::SharedPointer()) | |
Creates and initializes the array with num_elem copies of value. More... | |
Array (const InputIter &first, const InputIter &last) | |
Creates and initializes the array with copies of the elements in the range [first, last). More... | |
virtual | ~Array () |
Virtual destructor. More... | |
StorageType & | getData () |
const StorageType & | getData () const |
BaseType & | getBase () |
Returns a non-const reference to itself. More... | |
const BaseType & | getBase () const |
Returns a const reference to itself. More... | |
std::size_t | getSize () const |
Returns the number of elements stored in the array. More... | |
std::size_t | size () const |
Returns the number of elements stored in the array. More... | |
bool | isEmpty () const |
Tells whether the array is empty (getSize() == 0). More... | |
void | resize (std::size_t num_elem, const typename ValueType::SharedPointer &value=typename ValueType::SharedPointer()) |
Inserts or erases elements at the end so that the size becomes num_elem. More... | |
void | reserve (std::size_t num_elem) |
Preallocates memory for (at least) num_elem elements. More... | |
std::size_t | getCapacity () const |
Returns the number of elements for which memory has been allocated. More... | |
void | clear () |
Erases all elements. More... | |
void | swap (Array &array) |
Swaps the contents with array. More... | |
void | assign (std::size_t num_elem, const typename ValueType::SharedPointer &value=typename ValueType::SharedPointer()) |
This function fills the array with num_elem copies of the given value. More... | |
void | assign (const InputIter &first, const InputIter &last) |
This function fills a vector with copies of the elements in the range [first, last). More... | |
void | addElement (const typename ValueType::SharedPointer &value=typename ValueType::SharedPointer()) |
Inserts a new element at the end of the array. More... | |
void | insertElement (std::size_t idx, const typename ValueType::SharedPointer &value=typename ValueType::SharedPointer()) |
Inserts a new element before the location specified by the index idx. More... | |
ElementIterator | insertElement (const ElementIterator &it, const typename ValueType::SharedPointer &value=typename ValueType::SharedPointer()) |
Inserts a new element before the location specified by the iterator it. More... | |
void | insertElements (std::size_t idx, std::size_t num_elem, const typename ValueType::SharedPointer &value=typename ValueType::SharedPointer()) |
Inserts num_elem copies of value before the location specified by the index idx. More... | |
void | insertElements (const ElementIterator &it, std::size_t num_elem, const typename ValueType::SharedPointer &value=typename ValueType::SharedPointer()) |
Inserts num_elem copies of value before the location specified by the iterator it. More... | |
void | insertElements (std::size_t idx, const InputIter &first, const InputIter &last) |
Inserts the range of elements [first, last) before the location specified by the index idx. More... | |
void | insertElements (const ElementIterator &it, const InputIter &first, const InputIter &last) |
Inserts the range of elements [first, last) before the location specified by the iterator it. More... | |
void | popLastElement () |
Removes the last element of the array. More... | |
void | removeElement (std::size_t idx) |
Removes the element at the position specified by the index idx. More... | |
ElementIterator | removeElement (const ElementIterator &it) |
Removes the element at the position specified by the iterator it. More... | |
ElementIterator | removeElements (const ElementIterator &first, const ElementIterator &last) |
Removes the elements pointed to by the iterators in the range [first, last). More... | |
const typename ValueType::SharedPointer & | getFirstElement () const |
Returns a const reference to the first element of the array. More... | |
typename ValueType::SharedPointer & | getFirstElement () |
Returns a non-const reference to the first element of the array. More... | |
const typename ValueType::SharedPointer & | getLastElement () const |
Returns a const reference to the last element of the array. More... | |
typename ValueType::SharedPointer & | getLastElement () |
Returns a non-const reference to the last element of the array. More... | |
ConstElementIterator | getElementsBegin () const |
Returns a constant iterator pointing to the beginning of the array. More... | |
ElementIterator | getElementsBegin () |
Returns a mutable iterator pointing to the beginning of the array. More... | |
ConstElementIterator | getElementsEnd () const |
Returns a constant iterator pointing to the end of the array. More... | |
ElementIterator | getElementsEnd () |
Returns a mutable iterator pointing to the end of the array. More... | |
ConstElementIterator | begin () const |
Returns a constant iterator pointing to the beginning of the array. More... | |
ElementIterator | begin () |
Returns a mutable iterator pointing to the beginning of the array. More... | |
ConstElementIterator | end () const |
Returns a constant iterator pointing to the end of the array. More... | |
ElementIterator | end () |
Returns a mutable iterator pointing to the end of the array. More... | |
ConstReverseElementIterator | getElementsReverseBegin () const |
Returns a constant iterator pointing to the beginning of the reversed array. More... | |
ReverseElementIterator | getElementsReverseBegin () |
Returns a mutable iterator pointing to the beginning of the reversed array. More... | |
ConstReverseElementIterator | getElementsReverseEnd () const |
Returns a constant iterator pointing to the end of the reversed array. More... | |
ReverseElementIterator | getElementsReverseEnd () |
Returns a mutable iterator pointing to the end of the reversed array. More... | |
const typename ValueType::SharedPointer & | getElement (std::size_t idx) const |
Returns a const reference to the element at index idx. More... | |
typename ValueType::SharedPointer & | getElement (std::size_t idx) |
Returns a non-const reference to the element at index idx. More... | |
void | setElement (std::size_t idx, const typename ValueType::SharedPointer &value=typename ValueType::SharedPointer()) |
Assigns a new value to the element specified by the index idx. More... | |
const typename ValueType::SharedPointer & | operator[] (std::size_t idx) const |
Returns a const reference to the element at index idx. More... | |
typename ValueType::SharedPointer & | operator[] (std::size_t idx) |
Returns a non-const reference to the element at index idx. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from CDPL::Util::Array< typename ValueType::SharedPointer > | |
void | checkIfNonEmpty () const |
void | checkIndex (std::size_t idx, bool allow_end) const |
void | checkIterator (const ElementIterator &it, bool allow_end) |
void | checkIterator (const ConstElementIterator &it, bool allow_end) const |
A dynamic array class for the storage of object pointers with an indirected query interface.
IndirectArray
stores pointers to objects instead of object copies and provides an indirected query interface. That is, methods for accessing an array element do not directly return the stored pointer but return a reference to the pointed-to object. This is also true for iterators pointing into the array which will return a reference to the pointed-to object upon dereferenciation. To
increase code correctness and safety, IndirectArray
can be configured to check if an object pointer is null before a dereferenciation or object access is attempted. Since IndirectArray
publicly derives from Util::Array (which provides the storage for the pointers), IndirectArray
has the same characteristics regarding dynamic memory management and time complexity of various modifying and non-modifying operations.
ValueType | The type of the pointed-to objects. |
PointerType | The type of the stored pointers. |
NullPointerCheck | Whether to check for null pointers. |
typedef Array<PointerType> CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::BaseType |
The type of the public Array<PointerType> base class storing the pointer elements.
typedef ValueType CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::ElementType |
The type of the object that is obtained after dereferenciation of a stored pointer element.
typedef std::shared_ptr<IndirectArray> CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::SharedPointer |
A reference-counted smart pointer [SHPTR] for dynamically allocated IndirectArray
instances.
typedef boost::transform_iterator<DerefFunc, typename BaseType::ConstElementIterator, const ValueType&> CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::ConstElementIterator |
A constant random access iterator used to iterate over the pointed-to objects.
typedef boost::transform_iterator<DerefFunc, typename BaseType::ConstReverseElementIterator, const ValueType&> CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::ConstReverseElementIterator |
A constant random access iterator used to iterate over the pointed-to objects in reverse order.
typedef boost::transform_iterator<DerefFunc, typename BaseType::ElementIterator, ValueType&> CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::ElementIterator |
A mutable random access iterator used to iterate over the pointed-to objects.
typedef boost::transform_iterator<DerefFunc, typename BaseType::ReverseElementIterator, ValueType&> CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::ReverseElementIterator |
A mutable random access iterator used to iterate over the pointed-to objects in reverse order.
|
inline |
Creates an empty array.
|
inline |
Creates and initializes the array with num_elem copies of ptr.
num_elem | The size of the created array. |
ptr | The value with which each pointer element of the array will be initialized. |
|
inline |
Creates and initializes the array with copies of the pointers in the range [first, last).
first | The start of the range. |
last | The end of the range. |
|
inlinevirtual |
Virtual destructor.
CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::ElementIterator CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::insertElement | ( | const ElementIterator & | it, |
const PointerType & | ptr | ||
) |
Inserts a new element before the location specified by the iterator it.
it | The location where to insert the new element. |
ptr | The value of pointer element to insert. |
Base::RangeError | if it is not in the range [getElementsBegin(), getElementsEnd()]. |
void CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::insertElements | ( | const ElementIterator & | it, |
std::size_t | num_elem, | ||
const PointerType & | ptr | ||
) |
Inserts num_elem copies of ptr before the location specified by the iterator it.
it | The location where to insert the new pointers. |
num_elem | The number of pointers to insert. |
ptr | The value of the pointer elements to insert. |
Base::RangeError | if it is not in the range [getElementsBegin(), getElementsEnd()]. |
void CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::insertElements | ( | const ElementIterator & | it, |
const InputIter & | first, | ||
const InputIter & | last | ||
) |
Inserts the range of pointers [first, last) before the location specified by the iterator it.
it | The location where to insert the new pointer elements. |
first | The start of the range. |
last | The end of the range. |
Base::RangeError | if it is not in the range [getElementsBegin(), getElementsEnd()]. |
CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::ElementIterator CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::removeElement | ( | const ElementIterator & | it | ) |
Removes the element at the position specified by the iterator it.
it | The iterator specifying the pointer to remove. |
Base::RangeError | if it is not in the range [getElementsBegin(), getElementsEnd() - 1]. |
CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::ElementIterator CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::removeElements | ( | const ElementIterator & | first, |
const ElementIterator & | last | ||
) |
Removes the elements pointed to by the iterators in the range [first, last).
first | The start of the range. |
last | The end of the range. |
Base::RangeError | if first or last is not in the range [getElementsBegin(), getElementsEnd()] or last < first. |
const ValueType & CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::getFirstElement |
Returns a const
reference to the object pointed to by the first element of the array.
const
reference to the first pointed-to object. Base::OperationFailed | if the array is empty. Base::NullPointerException if null pointer checking is enabled and the object pointer is null. |
const ValueType & CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::getLastElement |
Returns a const
reference to the object pointed to by the last element of the array.
const
reference to the last pointed-to object. Base::OperationFailed | if the array is empty. Base::NullPointerException if null pointer checking is enabled and the object pointer is null. |
ValueType & CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::getFirstElement |
Returns a non-const
reference to the object pointed to by the first element of the array.
const
reference to the first pointed-to object. Base::OperationFailed | if the array is empty. Base::NullPointerException if null pointer checking is enabled and the object pointer is null. |
ValueType & CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::getLastElement |
Returns a non-const
reference to the object pointed to by the last element of the array.
const
reference to the last pointed-to object. Base::OperationFailed | if the array is empty. Base::NullPointerException if null pointer checking is enabled and the object pointer is null. |
CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::ConstElementIterator CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::getElementsBegin |
Returns a constant iterator over the pointed-to objects that points to the beginning of the array.
CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::ElementIterator CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::getElementsBegin |
Returns a mutable iterator over the pointed-to objects that points to the beginning of the array.
CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::ConstElementIterator CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::getElementsEnd |
Returns a constant iterator over the pointed-to objects that points to the end of the array.
CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::ElementIterator CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::getElementsEnd |
Returns a mutable iterator over the pointed-to objects that points to the end of the array.
CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::ConstElementIterator CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::begin |
Returns a constant iterator over the pointed-to objects that points to the beginning of the array.
CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::ElementIterator CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::begin |
Returns a mutable iterator over the pointed-to objects that points to the beginning of the array.
CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::ConstElementIterator CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::end |
Returns a constant iterator over the pointed-to objects that points to the end of the array.
CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::ElementIterator CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::end |
Returns a mutable iterator over the pointed-to objects that points to the end of the array.
CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::ConstReverseElementIterator CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::getElementsReverseBegin |
Returns a constant iterator over the pointed-to objects that points to the beginning of the reversed array.
CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::ReverseElementIterator CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::getElementsReverseBegin |
Returns a mutable iterator over the pointed-to objects that points to the beginning of the reversed array.
CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::ConstReverseElementIterator CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::getElementsReverseEnd |
Returns a constant iterator over the pointed-to objects that points to the end of the reversed array.
CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::ReverseElementIterator CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::getElementsReverseEnd |
Returns a mutable iterator over the pointed-to objects that points to the end of the reversed array.
const ValueType & CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::getElement | ( | std::size_t | idx | ) | const |
Returns a const
reference to the object pointed-to by the pointer element at index idx.
The method is equivalent to operator[](std::size_t) const.
idx | The zero-based index of the pointer element. |
const
reference to the pointed-to object. Base::IndexError | if the array is empty or idx is not in the range [0, getSize() - 1]. Base::NullPointerException if null pointer checking is enabled and the object pointer is null. |
ValueType & CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::getElement | ( | std::size_t | idx | ) |
Returns a non-const
reference to the object pointed-to by the pointer element at index idx.
The method is equivalent to operator[](std::size_t) const.
idx | The zero-based index of the pointer element. |
const
reference to the pointed-to object. Base::IndexError | if the array is empty or idx is not in the range [0, getSize() - 1]. Base::NullPointerException if null pointer checking is enabled and the object pointer is null. |
const ValueType & CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::operator[] | ( | std::size_t | idx | ) | const |
Returns a const
reference to the object pointed-to by the pointer element at index idx.
idx | The zero-based index of the pointer element. |
const
reference to the pointed-to object. Base::IndexError | if the array is empty or idx is not in the range [0, getSize() - 1]. Base::NullPointerException if null pointer checking is enabled and the object pointer is null. |
ValueType & CDPL::Util::IndirectArray< ValueType, PointerType, NullPointerCheck >::operator[] | ( | std::size_t | idx | ) |
Returns a non-const
reference to the object pointed-to by the pointer element at index idx.
idx | The zero-based index of the pointer element. |
const
reference to the pointed-to object. Base::IndexError | if the array is empty or idx is not in the range [0, getSize() - 1]. Base::NullPointerException if null pointer checking is enabled and the object pointer is null. |
void CDPL::Util::Array< ValueType >::insertElement |
Inserts a new element before the location specified by the index idx.
idx | The location where to insert the new element. |
value | The value of the element to insert. |
Base::IndexError | if the array is empty or idx is not in the range [0, getSize()]. |
CDPL::Util::Array< ValueType >::ElementIterator CDPL::Util::Array< ValueType >::insertElement |
Inserts a new element before the location specified by the iterator it.
it | The location where to insert the new element. |
value | The value of the element to insert. |
Base::RangeError | if it is not in the range [getElementsBegin(), getElementsEnd()]. |
void CDPL::Util::Array< ValueType >::insertElements |
Inserts num_elem copies of value before the location specified by the index idx.
idx | The location where to insert the new elements. |
num_elem | The number of elements to insert. |
value | The value of the elements to insert. |
Base::IndexError | if idx is not in the range [0, getSize()]. |
void CDPL::Util::Array< ValueType >::insertElements |
Inserts num_elem copies of value before the location specified by the iterator it.
it | The location where to insert the new elements. |
num_elem | The number of elements to insert. |
value | The value of the elements to insert. |
Base::RangeError | if it is not in the range [getElementsBegin(), getElementsEnd()]. |
void CDPL::Util::Array< ValueType >::insertElements | ( | typename InputIter | ) |
Inserts the range of elements [first, last) before the location specified by the index idx.
idx | The location where to insert the new elements. |
first | The start of the range. |
last | The end of the range. |
Base::IndexError | if idx is not in the range [0, getSize()]. |
void CDPL::Util::Array< ValueType >::insertElements | ( | typename InputIter | ) |
Inserts the range of elements [first, last) before the location specified by the iterator it.
it | The location where to insert the new elements. |
first | The start of the range. |
last | The end of the range. |
Base::RangeError | if it is not in the range [getElementsBegin(), getElementsEnd()]. |
void CDPL::Util::Array< ValueType >::removeElement |
Removes the element at the position specified by the index idx.
idx | The zero-based index of the element to remove. |
Base::IndexError | if the array is empty or idx is not in the range [0, getSize() - 1]. |
CDPL::Util::Array< ValueType >::ElementIterator CDPL::Util::Array< ValueType >::removeElement |
Removes the element at the position specified by the iterator it.
it | The iterator specifying the element to remove. |
Base::RangeError | if the array is empty or it is not in the range [getElementsBegin(), getElementsEnd() - 1]. |
CDPL::Util::Array< ValueType >::ElementIterator CDPL::Util::Array< ValueType >::removeElements |
Removes the elements pointed to by the iterators in the range [first, last).
first | The start of the range. |
last | The end of the range. |
Base::RangeError | if first or last is not in the range [getElementsBegin(), getElementsEnd()] or last < first. |