Ocean
|
This class implements an indexed-based constant accessor providing access to a subset of elements stored in an array. More...
Public Types | |
typedef T | Type |
Definition of the element type of this accessor. More... | |
typedef size_t | KeyType |
Definition of the key (or e.g., index) type of this accessor. More... | |
typedef TIndex | IndexType |
Definition of the data type of the indices. More... | |
Public Member Functions | |
ConstTemplateArraySubsetAccessor ()=default | |
Creates a new empty accessor. More... | |
ConstTemplateArraySubsetAccessor (ConstTemplateArraySubsetAccessor< T, TIndex > &&accessor) noexcept | |
Move constructor. More... | |
ConstTemplateArraySubsetAccessor (const T *elements, const TIndex *subsetIndices, const size_t subsetSize) | |
Creates a new accessor object. More... | |
ConstTemplateArraySubsetAccessor (const T *elements, const std::vector< TIndex > &subsetIndices) | |
Creates a new accessor object. More... | |
ConstTemplateArraySubsetAccessor (const std::vector< T > &elements, const std::vector< TIndex > &subsetIndices) | |
Creates a new accessor object. More... | |
const T * | data () const |
Returns a pointer to the elements of this accessor if the data exists within one memory block without gaps. More... | |
size_t | size () const |
Returns the number of accessible elements of this accessor object. More... | |
bool | isEmpty () const |
Returns whether this accessor provides no elements. More... | |
bool | canAccess (const size_t &index) const |
Returns whether this accessor has a specific element. More... | |
bool | firstElement (T &element, size_t &index) const |
Returns the first element of this accessor. More... | |
bool | nextElement (const size_t &previousIndex, T &nextElement, size_t &nextIndex) const |
Returns the next element which follows a given key of the previous element. More... | |
const T & | operator[] (const size_t &index) const |
Returns one element of this accessor object. More... | |
ConstTemplateArraySubsetAccessor< T, TIndex > & | operator= (ConstTemplateArraySubsetAccessor< T, TIndex > &&accessor) noexcept |
Move operator. More... | |
Protected Attributes | |
const T * | elements_ = nullptr |
The elements of this accessor. More... | |
const TIndex * | subsetIndices_ = nullptr |
The subset indices of this accessor. More... | |
size_t | subsetSize_ = 0 |
The number of elements that can be accessed. More... | |
This class implements an indexed-based constant accessor providing access to a subset of elements stored in an array.
The subset is defined by a set of indices defining also the order of the accessible elements.
An instance of this accessor does not copy the elements or the subset indices, thus the caller has to ensure that the actual elements exist as long as the instance of the accessor exists.
This class is not derived from Accessor (or any other Accessor class) to avoid virtual functions ensuring higher element-access performances.
Thus, this class will mainly be applied in template functions where the type of the accessor is defined at compile time.
T | The data type of the elements of the accessor |
TIndex | The data type of the indices defining the subset of elements |
typedef TIndex Ocean::ConstTemplateArraySubsetAccessor< T, TIndex >::IndexType |
Definition of the data type of the indices.
typedef size_t Ocean::ConstTemplateArraySubsetAccessor< T, TIndex >::KeyType |
Definition of the key (or e.g., index) type of this accessor.
typedef T Ocean::ConstTemplateArraySubsetAccessor< T, TIndex >::Type |
Definition of the element type of this accessor.
|
default |
Creates a new empty accessor.
|
inlinenoexcept |
Move constructor.
accessor | Accessor to be moved |
|
inline |
Creates a new accessor object.
Beware: The given elements are not copied, they must not be deleted before the accessor is disposed.
elements | The elements that can be accessed, may be nullptr if size is equal 0 |
subsetIndices | The indices that define a subset of the elements to be accessed, the maximal index must be smaller than the number of given elements |
subsetSize | The number of indices (not the number of elements) that define the subset, may be 0 if indices is nullptr |
|
inline |
Creates a new accessor object.
Beware: The given elements are not copied, they must not be deleted before the accessor is disposed.
elements | The elements that can be accessed, may be nullptr if size is equal 0 |
subsetIndices | The indices that define a subset of the elements to be accessed, the maximal index must be smaller than the number of given elements |
|
inline |
Creates a new accessor object.
Beware: The given elements are not copied, they must not be deleted before the accessor is disposed.
elements | The elements that can be accessed, may be nullptr if size is equal 0 |
subsetIndices | The indices that define a subset of the elements to be accessed, the maximal index must be smaller than the number of given elements |
|
inline |
Returns whether this accessor has a specific element.
|
inline |
Returns a pointer to the elements of this accessor if the data exists within one memory block without gaps.
|
inline |
Returns the first element of this accessor.
|
inline |
Returns whether this accessor provides no elements.
|
inline |
Returns the next element which follows a given key of the previous element.
|
inlinenoexcept |
|
inline |
Returns one element of this accessor object.
|
inline |
Returns the number of accessible elements of this accessor object.
|
protected |
The elements of this accessor.
|
protected |
The subset indices of this accessor.
|
protected |
The number of elements that can be accessed.