Loading...
Searching...
No Matches
indirect_vector

## Classes

class | etl::iindirect_vector< T >
class | etl::indirect_vector< T, MAX_SIZE_ >
class | etl::indirect_vector_ext< T >
| Template deduction guides. More...

## Functions

template<typename T>
bool | etl::operator== (const etl::iindirect_vector< T > &lhs, const etl::iindirect_vector< T > &rhs)
template<typename T>
bool | etl::operator!= (const etl::iindirect_vector< T > &lhs, const etl::iindirect_vector< T > &rhs)
template<typename T>
bool | etl::operator< (const etl::iindirect_vector< T > &lhs, const etl::iindirect_vector< T > &rhs)
template<typename T>
bool | etl::operator> (const etl::iindirect_vector< T > &lhs, const etl::iindirect_vector< T > &rhs)
template<typename T>
bool | etl::operator<= (const etl::iindirect_vector< T > &lhs, const etl::iindirect_vector< T > &rhs)
template<typename T>
bool | etl::operator>= (const etl::iindirect_vector< T > &lhs, const etl::iindirect_vector< T > &rhs)

## Detailed Description

A indirect_vector with the capacity defined at compile time. Objects are allocated from a pool and stored as pointers.

## Class Documentation

## etl::iindirect_vector

class etl::iindirect_vector

template<typename T>
class etl::iindirect_vector< T >

The base class for specifically sized vectors. Can be used as a reference type for all vectors containing a specific type.

### Public Types

typedef T | value_type
typedef T & | reference
typedef const T & | const_reference
typedef T * | pointer
typedef const T * | const_pointer
typedef etl::ivector< T * >::iterator | indirect_iterator
typedef etl::ivector< T * >::const_iterator | indirect_const_iterator
typedef etl::ivector< T * >::size_type | size_type
typedef etl::ivector< T * >::difference_type | difference_type
typedef ETL_OR_STD::reverse_iterator< iterator > | reverse_iterator
typedef ETL_OR_STD::reverse_iterator< const_iterator > | const_reverse_iterator

### Public Member Functions

iterator | begin ()
const_iterator | begin () const
iterator | end ()
const_iterator | end () const
const_iterator | cbegin () const
const_iterator | cend () const
reverse_iterator | rbegin ()
const_reverse_iterator | rbegin () const
reverse_iterator | rend ()
const_reverse_iterator | rend () const
const_reverse_iterator | crbegin () const
const_reverse_iterator | crend () const
void | resize (size_t new_size)
void | resize (size_t new_size, const_reference value)
void | reserve (size_t n)
reference | operator[] (size_t i)
const_reference | operator[] (size_t i) const
reference | at (size_t i)
const_reference | at (size_t i) const
reference | front ()
const_reference | front () const
reference | back ()
const_reference | back () const
template<typename TIterator>
void | assign (TIterator first, TIterator last)
void | assign (size_t n, parameter_t value)
void | clear ()
| Clears the indirect_vector.
void | fill (const T &value)
| Fills the buffer.
void | push_back (const_reference value)
reference | emplace_back ()
template<typename T1>
reference | emplace_back (const T1 &value1)
template<typename T1, typename T2>
reference | emplace_back (const T1 &value1, const T2 &value2)
template<typename T1, typename T2, typename T3>
reference | emplace_back (const T1 &value1, const T2 &value2, const T3 &value3)
template<typename T1, typename T2, typename T3, typename T4>
reference | emplace_back (const T1 &value1, const T2 &value2, const T3 &value3, const T4 &value4)
void | pop_back ()
| Removes an element from the end of the indirect_vector.
iterator | insert (const_iterator position, const_reference value)
iterator | emplace (const_iterator position)
| Emplaces a value to the vector at the specified position.
template<typename T1>
iterator | emplace (const_iterator position, const T1 &value1)
template<typename T1, typename T2>
iterator | emplace (const_iterator position, const T1 &value1, const T2 &value2)
template<typename T1, typename T2, typename T3>
iterator | emplace (const_iterator position, const T1 &value1, const T2 &value2, const T3 &value3)
template<typename T1, typename T2, typename T3, typename T4>
iterator | emplace (const_iterator position, const T1 &value1, const T2 &value2, const T3 &value3, const T4 &value4)
iterator | insert (const_iterator position, size_t n, parameter_t value)
template<class TIterator>
iterator | insert (const_iterator position, TIterator first, TIterator last)
iterator | erase (iterator i_element)
iterator | erase (const_iterator i_element)
iterator | erase (const_iterator first, const_iterator last)
iindirect_vector & | operator= (const iindirect_vector &rhs)
| Assignment operator.
size_type | size () const
size_type | capacity () const
bool | empty () const
bool | full () const
size_type | max_size () const
size_type | available () const

### Protected Types

typedef etl::parameter_type< T >::type | parameter_t

### Protected Member Functions

| iindirect_vector (etl::ivector< T * > &lookup_, etl::ipool &storage_)
| Constructor.
void | initialise ()
| Initialise the indirect_vector.
| ~iindirect_vector ()
| Destructor.
iterator | to_iterator (const_iterator itr) const
| Convert from const_iterator to iterator.

### Protected Attributes

etl::ivector< T * > & | lookup
etl::ipool & | storage

#### Member Function Documentation

## assign() [1/2]

template<typename T>

void etl::iindirect_vector< T >::assign | ( | size_t | n,
|  | parameter_t | value )

inline

Assigns values to the indirect_vector. If asserts or exceptions are enabled, emits vector_full if the indirect_vector does not have enough free space.

Parameters

  n | The number of elements to add.
  value | The value to insert for each element.

## assign() [2/2]

template<typename T>
template<typename TIterator>

void etl::iindirect_vector< T >::assign | ( | TIterator | first,
|  | TIterator | last )

inline

Assigns values to the indirect_vector. If asserts or exceptions are enabled, emits vector_full if the indirect_vector does not have enough free space. If asserts or exceptions are enabled, emits vector_iterator if the iterators are reversed.

Parameters

  first | The iterator to the first element.
  last | The iterator to the last element + 1.

## at() [1/2]

template<typename T>

reference etl::iindirect_vector< T >::at | ( | size_t | i | ) |

inline

Returns a reference to the value at index 'i' If asserts or exceptions are enabled, emits an etl::vector_out_of_bounds if the index is out of range.

Parameters

  i | The index.

Returns
  A reference to the value at index 'i'

## at() [2/2]

template<typename T>

const_reference etl::iindirect_vector< T >::at | ( | size_t | i | ) | const

inline

Returns a const reference to the value at index 'i' If asserts or exceptions are enabled, emits an etl::vector_out_of_bounds if the index is out of range.

Parameters

  i | The index.

Returns
  A const reference to the value at index 'i'

## available()

template<typename T>

size_type etl::iindirect_vector< T >::available | ( |  | ) | const

inline

Returns the remaining capacity.

Returns
  The remaining capacity.

## back() [1/2]

template<typename T>

reference etl::iindirect_vector< T >::back | ( |  | ) |

inline

Returns a reference to the last element. If asserts or exceptions are enabled, throws an etl::vector_out_of_bounds if the vector is empty.

Returns
  A reference to the last element.

## back() [2/2]

template<typename T>

const_reference etl::iindirect_vector< T >::back | ( |  | ) | const

inline

Returns a const reference to the last element. If asserts or exceptions are enabled, throws an etl::vector_out_of_bounds if the vector is empty.

Returns
  A const reference to the last element.

## begin() [1/2]

template<typename T>

iterator etl::iindirect_vector< T >::begin | ( |  | ) |

inline

Returns an iterator to the beginning of the indirect_vector.

Returns
  An iterator to the beginning of the indirect_vector.

## begin() [2/2]

template<typename T>

const_iterator etl::iindirect_vector< T >::begin | ( |  | ) | const

inline

Returns a const_iterator to the beginning of the indirect_vector.

Returns
  A const iterator to the beginning of the indirect_vector.

## capacity()

template<typename T>

size_type etl::iindirect_vector< T >::capacity | ( |  | ) | const

inline

Gets the current capacity of the indirect_vector.

Returns
  The capacity of the indirect_vector.

## cbegin()

template<typename T>

const_iterator etl::iindirect_vector< T >::cbegin | ( |  | ) | const

inline

Returns a const_iterator to the beginning of the indirect_vector.

Returns
  A const iterator to the beginning of the indirect_vector.

## cend()

template<typename T>

const_iterator etl::iindirect_vector< T >::cend | ( |  | ) | const

inline

Returns a const_iterator to the end of the indirect_vector.

Returns
  A const iterator to the end of the indirect_vector.

## crbegin()

template<typename T>

const_reverse_iterator etl::iindirect_vector< T >::crbegin | ( |  | ) | const

inline

Returns a const reverse iterator to the reverse beginning of the indirect_vector.

Returns
  Const reverse iterator to the reverse beginning of the indirect_vector.

## crend()

template<typename T>

const_reverse_iterator etl::iindirect_vector< T >::crend | ( |  | ) | const

inline

Returns a const reverse iterator to the end + 1 of the indirect_vector.

Returns
  Const reverse iterator to the end + 1 of the indirect_vector.

## emplace_back() [1/5]

template<typename T>

reference etl::iindirect_vector< T >::emplace_back | ( |  | ) |

inline

Constructs a value at the end of the indirect_vector. If asserts or exceptions are enabled, emits vector_full if the indirect_vector is already full.

Parameters

  value | The value to add.

## emplace_back() [2/5]

template<typename T>
template<typename T1>

reference etl::iindirect_vector< T >::emplace_back | ( | const T1 & | value1 | ) |

inline

Constructs a value at the end of the indirect_vector. If asserts or exceptions are enabled, emits vector_full if the indirect_vector is already full.

Parameters

  value | The value to add.

## emplace_back() [3/5]

template<typename T>
template<typename T1, typename T2>

reference etl::iindirect_vector< T >::emplace_back | ( | const T1 & | value1,
|  | const T2 & | value2 )

inline

Constructs a value at the end of the indirect_vector. If asserts or exceptions are enabled, emits vector_full if the indirect_vector is already full.

Parameters

  value | The value to add.

## emplace_back() [4/5]

template<typename T>
template<typename T1, typename T2, typename T3>

reference etl::iindirect_vector< T >::emplace_back | ( | const T1 & | value1,
|  | const T2 & | value2,
|  | const T3 & | value3 )

inline

Constructs a value at the end of the indirect_vector. If asserts or exceptions are enabled, emits vector_full if the indirect_vector is already full.

Parameters

  value | The value to add.

## emplace_back() [5/5]

template<typename T>
template<typename T1, typename T2, typename T3, typename T4>

reference etl::iindirect_vector< T >::emplace_back | ( | const T1 & | value1,
|  | const T2 & | value2,
|  | const T3 & | value3,
|  | const T4 & | value4 )

inline

Constructs a value at the end of the indirect_vector. If asserts or exceptions are enabled, emits vector_full if the indirect_vector is already full.

Parameters

  value | The value to add.

## empty()

template<typename T>

bool etl::iindirect_vector< T >::empty | ( |  | ) | const

inline

Checks the 'empty' state of the indirect_vector.

Returns
  true if empty.

## end() [1/2]

template<typename T>

iterator etl::iindirect_vector< T >::end | ( |  | ) |

inline

Returns an iterator to the end of the indirect_vector.

Returns
  An iterator to the end of the indirect_vector.

## end() [2/2]

template<typename T>

const_iterator etl::iindirect_vector< T >::end | ( |  | ) | const

inline

Returns a const_iterator to the end of the indirect_vector.

Returns
  A const iterator to the end of the indirect_vector.

## erase() [1/3]

template<typename T>

iterator etl::iindirect_vector< T >::erase | ( | const_iterator | first,
|  | const_iterator | last )

inline

Erases a range of elements. The range includes all the elements between first and last, including the element pointed by first, but not the one pointed by last.

Parameters

  first | Iterator to the first element.
  last | Iterator to the last element.

Returns
  An iterator pointing to the element that followed the erased element.

## erase() [2/3]

template<typename T>

iterator etl::iindirect_vector< T >::erase | ( | const_iterator | i_element | ) |

inline

Erases an element.

Parameters

  i_element | Iterator to the element.

Returns
  An iterator pointing to the element that followed the erased element.

## erase() [3/3]

template<typename T>

iterator etl::iindirect_vector< T >::erase | ( | iterator | i_element | ) |

inline

Erases an element.

Parameters

  i_element | Iterator to the element.

Returns
  An iterator pointing to the element that followed the erased element.

## front() [1/2]

template<typename T>

reference etl::iindirect_vector< T >::front | ( |  | ) |

inline

Returns a reference to the first element. If asserts or exceptions are enabled, throws an etl::vector_out_of_bounds if the vector is empty.

Returns
  A reference to the first element.

## front() [2/2]

template<typename T>

const_reference etl::iindirect_vector< T >::front | ( |  | ) | const

inline

Returns a const reference to the first element. If asserts or exceptions are enabled, throws an etl::vector_out_of_bounds if the vector is empty.

Returns
  A const reference to the first element.

## full()

template<typename T>

bool etl::iindirect_vector< T >::full | ( |  | ) | const

inline

Checks the 'full' state of the indirect_vector.

Returns
  true if full.

## insert() [1/3]

template<typename T>

iterator etl::iindirect_vector< T >::insert | ( | const_iterator | position,
|  | const_reference | value )

inline

Inserts a value to the indirect_vector. If asserts or exceptions are enabled, emits vector_full if the indirect_vector is already full.

Parameters

  position | The position to insert before.
  value | The value to insert.

## insert() [2/3]

template<typename T>

iterator etl::iindirect_vector< T >::insert | ( | const_iterator | position,
|  | size_t | n,
|  | parameter_t | value )

inline

Inserts 'n' values to the indirect_vector. If asserts or exceptions are enabled, emits vector_full if the indirect_vector does not have enough free space.

Parameters

  position | The position to insert before.
  n | The number of elements to add.
  value | The value to insert.

## insert() [3/3]

template<typename T>
template<class TIterator>

iterator etl::iindirect_vector< T >::insert | ( | const_iterator | position,
|  | TIterator | first,
|  | TIterator | last )

inline

Inserts a range of values to the indirect_vector. If asserts or exceptions are enabled, emits vector_full if the indirect_vector does not have enough free space.

Parameters

  position | The position to insert before.
  first | The first element to add.
  last | The last + 1 element to add.

## max_size()

template<typename T>

size_type etl::iindirect_vector< T >::max_size | ( |  | ) | const

inline

Returns the maximum size.

Returns
  The maximum size.

## operator[]() [1/2]

template<typename T>

reference etl::iindirect_vector< T >::operator[] | ( | size_t | i | ) |

inline

Returns a reference to the value at index 'i'

Parameters

  i | The index.

Returns
  A reference to the value at index 'i'

## operator[]() [2/2]

template<typename T>

const_reference etl::iindirect_vector< T >::operator[] | ( | size_t | i | ) | const

inline

Returns a const reference to the value at index 'i'

Parameters

  i | The index.

Returns
  A const reference to the value at index 'i'

## push_back()

template<typename T>

void etl::iindirect_vector< T >::push_back | ( | const_reference | value | ) |

inline

Inserts a value at the end of the indirect_vector. If asserts or exceptions are enabled, emits vector_full if the indirect_vector is already full.

Parameters

  value | The value to add.

## rbegin() [1/2]

template<typename T>

reverse_iterator etl::iindirect_vector< T >::rbegin | ( |  | ) |

inline

Returns an reverse iterator to the reverse beginning of the indirect_vector.

Returns
  Iterator to the reverse beginning of the indirect_vector.

## rbegin() [2/2]

template<typename T>

const_reverse_iterator etl::iindirect_vector< T >::rbegin | ( |  | ) | const

inline

Returns a const reverse iterator to the reverse beginning of the indirect_vector.

Returns
  Const iterator to the reverse beginning of the indirect_vector.

## rend() [1/2]

template<typename T>

reverse_iterator etl::iindirect_vector< T >::rend | ( |  | ) |

inline

Returns a reverse iterator to the end + 1 of the indirect_vector.

Returns
  Reverse iterator to the end + 1 of the indirect_vector.

## rend() [2/2]

template<typename T>

const_reverse_iterator etl::iindirect_vector< T >::rend | ( |  | ) | const

inline

Returns a const reverse iterator to the end + 1 of the indirect_vector.

Returns
  Const reverse iterator to the end + 1 of the indirect_vector.

## reserve()

template<typename T>

void etl::iindirect_vector< T >::reserve | ( | size_t | n | ) |

inline

For compatibility with the STL vector API. Does not increase the capacity, as this is fixed. Asserts an etl::vector_out_of_bounds error if the request is for more than the capacity.

## resize() [1/2]

template<typename T>

void etl::iindirect_vector< T >::resize | ( | size_t | new_size | ) |

inline

Resizes the indirect_vector. If asserts or exceptions are enabled and the new size is larger than the maximum then a vector_full is thrown.

Parameters

  new_size | The new size.

## resize() [2/2]

template<typename T>

void etl::iindirect_vector< T >::resize | ( | size_t | new_size,
|  | const_reference | value )

inline

Resizes the indirect_vector. If asserts or exceptions are enabled and the new size is larger than the maximum then a vector_full is thrown.

Parameters

  new_size | The new size.
  value | The value to fill new elements with. Default = default constructed value.

## size()

template<typename T>

size_type etl::iindirect_vector< T >::size | ( |  | ) | const

inline

Gets the current size of the indirect_vector.

Returns
  The current size of the indirect_vector.

## etl::indirect_vector

class etl::indirect_vector

template<typename T, const size_t MAX_SIZE_>
class etl::indirect_vector< T, MAX_SIZE_ >

A indirect_vector implementation that uses a fixed size buffer.

Template Parameters

  T | The element type.
  MAX_SIZE_ | The maximum number of elements that can be stored.

### Public Member Functions

| ETL_STATIC_ASSERT ((MAX_SIZE_ > 0U), "Zero capacity etl::indirect_vector is not valid")
| indirect_vector ()
| Constructor.
| indirect_vector (size_t initial_size)
| indirect_vector (size_t initial_size, typename etl::iindirect_vector< T >::parameter_t value)
template<typename TIterator>
| indirect_vector (TIterator first, TIterator last)
| indirect_vector (const indirect_vector &other)
| Copy constructor.
indirect_vector & | operator= (const indirect_vector &rhs)
| Assignment operator.
| ~indirect_vector ()
| Destructor.
Public Member Functions inherited from etl::iindirect_vector< T >
iterator | begin ()
const_iterator | begin () const
iterator | end ()
const_iterator | end () const
const_iterator | cbegin () const
const_iterator | cend () const
reverse_iterator | rbegin ()
const_reverse_iterator | rbegin () const
reverse_iterator | rend ()
const_reverse_iterator | rend () const
const_reverse_iterator | crbegin () const
const_reverse_iterator | crend () const
void | resize (size_t new_size)
void | resize (size_t new_size, const_reference value)
void | reserve (size_t n)
reference | operator[] (size_t i)
const_reference | operator[] (size_t i) const
reference | at (size_t i)
const_reference | at (size_t i) const
reference | front ()
const_reference | front () const
reference | back ()
const_reference | back () const
template<typename TIterator>
void | assign (TIterator first, TIterator last)
void | assign (size_t n, parameter_t value)
void | clear ()
| Clears the indirect_vector.
void | fill (const T &value)
| Fills the buffer.
void | push_back (const_reference value)
reference | emplace_back ()
template<typename T1>
reference | emplace_back (const T1 &value1)
template<typename T1, typename T2>
reference | emplace_back (const T1 &value1, const T2 &value2)
template<typename T1, typename T2, typename T3>
reference | emplace_back (const T1 &value1, const T2 &value2, const T3 &value3)
template<typename T1, typename T2, typename T3, typename T4>
reference | emplace_back (const T1 &value1, const T2 &value2, const T3 &value3, const T4 &value4)
void | pop_back ()
| Removes an element from the end of the indirect_vector.
iterator | insert (const_iterator position, const_reference value)
iterator | emplace (const_iterator position)
| Emplaces a value to the vector at the specified position.
template<typename T1>
iterator | emplace (const_iterator position, const T1 &value1)
template<typename T1, typename T2>
iterator | emplace (const_iterator position, const T1 &value1, const T2 &value2)
template<typename T1, typename T2, typename T3>
iterator | emplace (const_iterator position, const T1 &value1, const T2 &value2, const T3 &value3)
template<typename T1, typename T2, typename T3, typename T4>
iterator | emplace (const_iterator position, const T1 &value1, const T2 &value2, const T3 &value3, const T4 &value4)
iterator | insert (const_iterator position, size_t n, parameter_t value)
template<class TIterator>
iterator | insert (const_iterator position, TIterator first, TIterator last)
iterator | erase (iterator i_element)
iterator | erase (const_iterator i_element)
iterator | erase (const_iterator first, const_iterator last)
iindirect_vector & | operator= (const iindirect_vector &rhs)
| Assignment operator.
size_type | size () const
size_type | capacity () const
bool | empty () const
bool | full () const
size_type | max_size () const
size_type | available () const

### Static Public Attributes

static ETL_CONSTANT size_t | MAX_SIZE = MAX_SIZE_

## Additional Inherited Members

Public Types inherited from etl::iindirect_vector< T >
typedef T | value_type
typedef T & | reference
typedef const T & | const_reference
typedef T * | pointer
typedef const T * | const_pointer
typedef etl::ivector< T * >::iterator | indirect_iterator
typedef etl::ivector< T * >::const_iterator | indirect_const_iterator
typedef etl::ivector< T * >::size_type | size_type
typedef etl::ivector< T * >::difference_type | difference_type
typedef ETL_OR_STD::reverse_iterator< iterator > | reverse_iterator
typedef ETL_OR_STD::reverse_iterator< const_iterator > | const_reverse_iterator
Protected Types inherited from etl::iindirect_vector< T >
typedef etl::parameter_type< T >::type | parameter_t
Protected Member Functions inherited from etl::iindirect_vector< T >
| iindirect_vector (etl::ivector< T * > &lookup_, etl::ipool &storage_)
| Constructor.
void | initialise ()
| Initialise the indirect_vector.
| ~iindirect_vector ()
| Destructor.
iterator | to_iterator (const_iterator itr) const
| Convert from const_iterator to iterator.
Protected Attributes inherited from etl::iindirect_vector< T >
etl::ivector< T * > & | lookup
etl::ipool & | storage

#### Constructor & Destructor Documentation

## indirect_vector() [1/3]

template<typename T, const size_t MAX_SIZE_>

etl::indirect_vector< T, MAX_SIZE_ >::indirect_vector | ( | size_t | initial_size | ) |

inline explicit

Constructor, with size.

Parameters

  initial_size | The initial size of the indirect_vector.

## indirect_vector() [2/3]

template<typename T, const size_t MAX_SIZE_>

etl::indirect_vector< T, MAX_SIZE_ >::indirect_vector | ( | size_t | initial_size,
|  | typename etl::iindirect_vector< T >::parameter_t | value )

inline

Constructor, from initial size and value.

Parameters

  initial_size | The initial size of the indirect_vector.
  value | The value to fill the indirect_vector with.

## indirect_vector() [3/3]

template<typename T, const size_t MAX_SIZE_>
template<typename TIterator>

etl::indirect_vector< T, MAX_SIZE_ >::indirect_vector | ( | TIterator | first,
|  | TIterator | last )

inline

Constructor, from an iterator range.

Template Parameters

  TIterator | The iterator type.

Parameters

  first | The iterator to the first element.
  last | The iterator to the last element + 1.

## etl::indirect_vector_ext

class etl::indirect_vector_ext

template<typename T>
class etl::indirect_vector_ext< T >

Template deduction guides.

Make A indirect_vector implementation that uses a fixed size buffer. The buffer is supplied on construction.

Template Parameters

  T | The element type.

### Public Member Functions

| indirect_vector_ext (etl::ivector< T * > &lookup_, etl::ipool &pool_)
| Constructor.
| indirect_vector_ext (size_t initial_size, etl::ivector< T * > &lookup_, etl::ipool &pool_)
| indirect_vector_ext (size_t initial_size, typename etl::iindirect_vector< T >::parameter_t value, etl::ivector< T * > &lookup_, etl::ipool &pool_)
template<typename TIterator>
| indirect_vector_ext (TIterator first, TIterator last, etl::ivector< T * > &lookup_, etl::ipool &pool_)
| indirect_vector_ext (const indirect_vector_ext &other, etl::ivector< T * > &lookup_, etl::ipool &pool_)
| Construct a copy.
| indirect_vector_ext (const indirect_vector_ext &other) ETL_DELETE
| Copy constructor (Deleted).
indirect_vector_ext & | operator= (const indirect_vector_ext &rhs)
| Assignment operator.
| ~indirect_vector_ext ()
| Destructor.
Public Member Functions inherited from etl::iindirect_vector< T >
iterator | begin ()
const_iterator | begin () const
iterator | end ()
const_iterator | end () const
const_iterator | cbegin () const
const_iterator | cend () const
reverse_iterator | rbegin ()
const_reverse_iterator | rbegin () const
reverse_iterator | rend ()
const_reverse_iterator | rend () const
const_reverse_iterator | crbegin () const
const_reverse_iterator | crend () const
void | resize (size_t new_size)
void | resize (size_t new_size, const_reference value)
void | reserve (size_t n)
reference | operator[] (size_t i)
const_reference | operator[] (size_t i) const
reference | at (size_t i)
const_reference | at (size_t i) const
reference | front ()
const_reference | front () const
reference | back ()
const_reference | back () const
template<typename TIterator>
void | assign (TIterator first, TIterator last)
void | assign (size_t n, parameter_t value)
void | clear ()
| Clears the indirect_vector.
void | fill (const T &value)
| Fills the buffer.
void | push_back (const_reference value)
reference | emplace_back ()
template<typename T1>
reference | emplace_back (const T1 &value1)
template<typename T1, typename T2>
reference | emplace_back (const T1 &value1, const T2 &value2)
template<typename T1, typename T2, typename T3>
reference | emplace_back (const T1 &value1, const T2 &value2, const T3 &value3)
template<typename T1, typename T2, typename T3, typename T4>
reference | emplace_back (const T1 &value1, const T2 &value2, const T3 &value3, const T4 &value4)
void | pop_back ()
| Removes an element from the end of the indirect_vector.
iterator | insert (const_iterator position, const_reference value)
iterator | emplace (const_iterator position)
| Emplaces a value to the vector at the specified position.
template<typename T1>
iterator | emplace (const_iterator position, const T1 &value1)
template<typename T1, typename T2>
iterator | emplace (const_iterator position, const T1 &value1, const T2 &value2)
template<typename T1, typename T2, typename T3>
iterator | emplace (const_iterator position, const T1 &value1, const T2 &value2, const T3 &value3)
template<typename T1, typename T2, typename T3, typename T4>
iterator | emplace (const_iterator position, const T1 &value1, const T2 &value2, const T3 &value3, const T4 &value4)
iterator | insert (const_iterator position, size_t n, parameter_t value)
template<class TIterator>
iterator | insert (const_iterator position, TIterator first, TIterator last)
iterator | erase (iterator i_element)
iterator | erase (const_iterator i_element)
iterator | erase (const_iterator first, const_iterator last)
iindirect_vector & | operator= (const iindirect_vector &rhs)
| Assignment operator.
size_type | size () const
size_type | capacity () const
bool | empty () const
bool | full () const
size_type | max_size () const
size_type | available () const

## Additional Inherited Members

Public Types inherited from etl::iindirect_vector< T >
typedef T | value_type
typedef T & | reference
typedef const T & | const_reference
typedef T * | pointer
typedef const T * | const_pointer
typedef etl::ivector< T * >::iterator | indirect_iterator
typedef etl::ivector< T * >::const_iterator | indirect_const_iterator
typedef etl::ivector< T * >::size_type | size_type
typedef etl::ivector< T * >::difference_type | difference_type
typedef ETL_OR_STD::reverse_iterator< iterator > | reverse_iterator
typedef ETL_OR_STD::reverse_iterator< const_iterator > | const_reverse_iterator
Protected Types inherited from etl::iindirect_vector< T >
typedef etl::parameter_type< T >::type | parameter_t
Protected Member Functions inherited from etl::iindirect_vector< T >
| iindirect_vector (etl::ivector< T * > &lookup_, etl::ipool &storage_)
| Constructor.
void | initialise ()
| Initialise the indirect_vector.
| ~iindirect_vector ()
| Destructor.
iterator | to_iterator (const_iterator itr) const
| Convert from const_iterator to iterator.
Protected Attributes inherited from etl::iindirect_vector< T >
etl::ivector< T * > & | lookup
etl::ipool & | storage

#### Constructor & Destructor Documentation

## indirect_vector_ext() [1/3]

template<typename T>

etl::indirect_vector_ext< T >::indirect_vector_ext | ( | size_t | initial_size,
|  | etl::ivector< T * > & | lookup_,
|  | etl::ipool & | pool_ )

inline explicit

Constructor, with size.

Parameters

  initial_size | The initial size of the indirect_vector_ext.

## indirect_vector_ext() [2/3]

template<typename T>

etl::indirect_vector_ext< T >::indirect_vector_ext | ( | size_t | initial_size,
|  | typename etl::iindirect_vector< T >::parameter_t | value,
|  | etl::ivector< T * > & | lookup_,
|  | etl::ipool & | pool_ )

inline

Constructor, from initial size and value.

Parameters

  initial_size | The initial size of the indirect_vector_ext.
  value | The value to fill the indirect_vector_ext with.

## indirect_vector_ext() [3/3]

template<typename T>
template<typename TIterator>

etl::indirect_vector_ext< T >::indirect_vector_ext | ( | TIterator | first,
|  | TIterator | last,
|  | etl::ivector< T * > & | lookup_,
|  | etl::ipool & | pool_ )

inline

Constructor, from an iterator range.

Template Parameters

  TIterator | The iterator type.

Parameters

  first | The iterator to the first element.
  last | The iterator to the last element + 1.

## Function Documentation

## operator!=()

template<typename T>

bool etl::operator!= | ( | const etl::iindirect_vector< T > & | lhs,
|  | const etl::iindirect_vector< T > & | rhs )

Not equal operator.

Parameters

  lhs | Reference to the first indirect_vector.
  rhs | Reference to the second indirect_vector.

Returns
  true if the arrays are not equal, otherwise false

## operator<()

template<typename T>

bool etl::operator< | ( | const etl::iindirect_vector< T > & | lhs,
|  | const etl::iindirect_vector< T > & | rhs )

Less than operator.

Parameters

  lhs | Reference to the first indirect_vector.
  rhs | Reference to the second indirect_vector.

Returns
  true if the first indirect_vector is lexicographically less than the second, otherwise false

## operator<=()

template<typename T>

bool etl::operator<= | ( | const etl::iindirect_vector< T > & | lhs,
|  | const etl::iindirect_vector< T > & | rhs )

Less than or equal operator.

Parameters

  lhs | Reference to the first indirect_vector.
  rhs | Reference to the second indirect_vector.

Returns
  true if the first indirect_vector is lexicographically less than or equal to the second, otherwise b>false

## operator==()

template<typename T>

bool etl::operator== | ( | const etl::iindirect_vector< T > & | lhs,
|  | const etl::iindirect_vector< T > & | rhs )

Equal operator.

Parameters

  lhs | Reference to the first indirect_vector.
  rhs | Reference to the second indirect_vector.

Returns
  true if the arrays are equal, otherwise false

## operator>()

template<typename T>

bool etl::operator> | ( | const etl::iindirect_vector< T > & | lhs,
|  | const etl::iindirect_vector< T > & | rhs )

Greater than operator.

Parameters

  lhs | Reference to the first indirect_vector.
  rhs | Reference to the second indirect_vector.

Returns
  true if the first indirect_vector is lexicographically greater than the second, otherwise b>false

## operator>=()

template<typename T>

bool etl::operator>= | ( | const etl::iindirect_vector< T > & | lhs,
|  | const etl::iindirect_vector< T > & | rhs )

Greater than or equal operator.

Parameters

  lhs | Reference to the first indirect_vector.
  rhs | Reference to the second indirect_vector.

Returns
  true if the first indirect_vector is lexicographically greater than or equal to the second, otherwise false