BlockArray< T, BLOCK_SIZE_EXPONENT, MEMFLAGS, ALLOCATOR >::IteratorTemplate< CONSTITERATOR > Class Template Reference
#include <blockarray.h>
The BlockArray iterator uses several tricks to make iteration faster than using a for loop with operator []. Therefore you should use it (or the C++11 range based for loop) to iterate over the array or parts of it.
You can use an iterator almost like a pointer, e.g.
it++; // go to the next element it--; // go to the previous element it += 5; // advance by 5 elements it -= 3; // go back 3 elements cnt = itB - itA; // number of elements from itA to itB it = array. Begin (); // iterator to the first element of the array *it = value; // assign value to the elements referenced by the iterator value = *value; // get value of the element referenced by the iterator
Public Types |
|
using | CollectionType = typename ConstIf < BlockArray , CONSTITERATOR >:: type |
using | 类型 = typename ConstIf < T, CONSTITERATOR >:: type |
静态公共属性 |
|
static const Bool | isLinearIterator |
Private Types |
|
using | BlockIterator = typename std::conditional< CONSTITERATOR, typename ArrayBlock::ConstIterator , typename ArrayBlock::Iterator >:: type |
using | BlockType = typename ConstIf < ArrayBlock , CONSTITERATOR >:: type |
Private Attributes |
|
CollectionType * | _array |
BlockType * | _block |
BlockIterator | _iterator |
BlockIterator | _end |
|
private |
|
private |
using CollectionType = typename ConstIf < BlockArray , CONSTITERATOR>:: type |
using 类型 = typename ConstIf <T, CONSTITERATOR>:: type |
|
explicit |
|
explicit |
|
explicit |
IteratorTemplate | ( | const IteratorTemplate < CONSTITERATOR > & | src | ) |
IteratorTemplate & operator= | ( | const IteratorTemplate < CONSTITERATOR > & | src | ) |
operator ConstIterator & | ( | ) |
MAXON_ATTRIBUTE_FORCE_INLINE IteratorTemplate GetBlock | ( | Block < 类型 , STRIDED > & | block | ) | const |
Determines a contiguous block of array elements to which the iterator points.
[out] | block | Block which contains the element.. |
Int GetBlockIndexAndLocalIndex | ( | Int & | localIdx | ) | const |
|
explicit |
类型 * GetPtr | ( | ) | const |
类型 & operator* | ( | ) | const |
类型 * operator-> | ( | ) | const |
Bool operator== | ( | const IteratorTemplate < CONSTITERATOR > & | b | ) | const |
Bool operator< | ( | const IteratorTemplate < CONSTITERATOR > & | b | ) | const |
MAXON_OPERATOR_COMPARISON | ( | IteratorTemplate < CONSTITERATOR > | ) |
IteratorTemplate & operator++ | ( | ) |
const IteratorTemplate operator++ | ( | int | ) |
IteratorTemplate & operator+= | ( | Int | i | ) |
IteratorTemplate operator+ | ( | Int | i | ) | const |
IteratorTemplate & operator-- | ( | ) |
const IteratorTemplate operator-- | ( | int | ) |
IteratorTemplate & operator-= | ( | Int | i | ) |
IteratorTemplate operator- | ( | Int | i | ) | const |
Int operator- | ( | const IteratorTemplate < CONSTITERATOR > & | b | ) | const |
|
|
private |
|
private |
|
private |
|
private |