STL-like API

Typedefs

using iterator = ElementType *
 Iterator type. More...
 
using const_iterator = ElementType const *
 Const iterator type. More...
 
typedef boost::reverse_iterator< iteratorreverse_iterator
 Reverse iterator type. More...
 
typedef boost::reverse_iterator< const_iteratorconst_reverse_iterator
 Reverse const iterator type. More...
 
typedef ElementTypereference
 Reference type. More...
 
typedef ElementType const & const_reference
 Const reference type. More...
 
typedef ElementTypepointer
 Pointer type. More...
 
typedef ElementType const * const_pointer
 Const pointer type. More...
 

Functions

iterator begin ()
 Return a non-const iterator to the start of the array. More...
 
iterator end ()
 Returns a non-const iterator to the end of the array. More...
 
const_iterator begin () const
 Return a const iterator to the start of the array. More...
 
const_iterator end () const
 Return a const iterator to the end of the array. More...
 
const_iterator cbegin () const
 Return a const iterator to the start of the array. More...
 
const_iterator cend () const
 Return a const iterator to the end of the array. More...
 
reverse_iterator rbegin ()
 Return a non-const reverse iterator to the end of the array. More...
 
reverse_iterator rend ()
 Return a reverse iterator to the start of the array. More...
 
const_reverse_iterator rbegin () const
 Return a const reverse iterator to the end of the array. More...
 
const_reverse_iterator rend () const
 Return a const reverse iterator to the start of the array. More...
 
const_reverse_iterator crbegin () const
 Return a const reverse iterator to the end of the array. More...
 
const_reverse_iterator crend () const
 Return a const reverse iterator to the start of the array. More...
 
pointer data ()
 Return a non-const pointer to this array's data. More...
 
const_pointer data () const
 Return a const pointer to this array's data. More...
 
const_pointer cdata () const
 Return a const pointer to the data held by this array. More...
 
template<typename... Args>
void emplace_back (Args &&... args)
 Initializes a new element at the end of the array. More...
 
void push_back (ElementType const &element)
 Appends an element at the end of the array. More...
 
void push_back (ElementType &&element)
 Appends an element at the end of the array. More...
 
void pop_back ()
 Remove the last element of an array. More...
 
size_t size () const
 Return the total number of elements in this array. More...
 
size_t capacity () const
 Return the number of items this container can grow to hold without triggering a (re)allocation. More...
 
constexpr size_t max_size () const
 Return a theoretical maximum size limit for the container. More...
 
bool empty () const
 Return true if this array contains no elements, false otherwise. More...
 
void reserve (size_t num)
 Ensure enough memory is allocated to hold num elements. More...
 
reference front ()
 Return a non-const reference to the first element in this array. More...
 
const_reference front () const
 Return a const reference to the first element in this array. More...
 
const_reference cfront () const
 Return a const reference to the first element in this array. More...
 
reference back ()
 Return a reference to the last element in this array. More...
 
const_reference back () const
 Return a const reference to the last element in this array. More...
 
const_reference cback () const
 Return a const reference to the last element in this array. More...
 
void resize (size_t newSize)
 Resize this array. More...
 
template<class FillElemsFn >
void resize (size_t newSize, FillElemsFn &&fillElems)
 Resize this array. More...
 
void clear ()
 Equivalent to resize(0). More...
 
iterator erase (const_iterator pos)
 Removes a single element at pos from the array. More...
 
iterator erase (const_iterator first, const_iterator last)
 Remove a range of elements [first, last) from the array. More...
 
template<class ForwardIter >
std::enable_if<!std::is_integral< ForwardIter >::value >::type assign (ForwardIter first, ForwardIter last)
 Assign array contents. More...
 
void assign (size_t n, const value_type &fill)
 Assign array contents. More...
 
void assign (std::initializer_list< ELEM > initializerList)
 Assign array contents via intializer list Equivalent to: More...
 
void swap (VtArray &other)
 Swap the contents of this array with other. More...
 

Detailed Description

Typedef Documentation

◆ const_iterator

using const_iterator = ElementType const *

Const iterator type.

Definition at line 242 of file array.h.

◆ const_pointer

typedef ElementType const* const_pointer

Const pointer type.

Definition at line 256 of file array.h.

◆ const_reference

typedef ElementType const& const_reference

Const reference type.

Definition at line 252 of file array.h.

◆ const_reverse_iterator

typedef boost::reverse_iterator<const_iterator> const_reverse_iterator

Reverse const iterator type.

Definition at line 247 of file array.h.

◆ iterator

using iterator = ElementType *

Iterator type.

Definition at line 240 of file array.h.

◆ pointer

typedef ElementType* pointer

Pointer type.

Definition at line 254 of file array.h.

◆ reference

Reference type.

Definition at line 250 of file array.h.

◆ reverse_iterator

typedef boost::reverse_iterator<iterator> reverse_iterator

Reverse iterator type.

Definition at line 245 of file array.h.

Function Documentation

◆ assign() [1/3]

std::enable_if<!std::is_integral<ForwardIter>::value>::type assign ( ForwardIter  first,
ForwardIter  last 
)
inline

Assign array contents.

Equivalent to:

array.resize(std::distance(first, last));
std::copy(first, last, array.begin());

Definition at line 728 of file array.h.

◆ assign() [2/3]

void assign ( size_t  n,
const value_type &  fill 
)
inline

Assign array contents.

Equivalent to:

array.resize(n);
std::fill(array.begin(), array.end(), fill);

Definition at line 745 of file array.h.

◆ assign() [3/3]

void assign ( std::initializer_list< ELEM >  initializerList)
inline

Assign array contents via intializer list Equivalent to:

array.assign(list.begin(), list.end());

Definition at line 761 of file array.h.

◆ back() [1/2]

reference back ( )
inline

Return a reference to the last element in this array.

The underlying data is copied if it is not uniquely owned. Invokes undefined behavior if the array is empty.

Definition at line 546 of file array.h.

◆ back() [2/2]

const_reference back ( ) const
inline

Return a const reference to the last element in this array.

Invokes undefined behavior if the array is empty.

Definition at line 549 of file array.h.

◆ begin() [1/2]

iterator begin ( )
inline

Return a non-const iterator to the start of the array.

The underlying data is copied if it is not uniquely owned.

Definition at line 381 of file array.h.

◆ begin() [2/2]

const_iterator begin ( ) const
inline

Return a const iterator to the start of the array.

Definition at line 387 of file array.h.

◆ capacity()

size_t capacity ( ) const
inline

Return the number of items this container can grow to hold without triggering a (re)allocation.

Note that if the underlying data is not uniquely owned, a reallocation can occur upon object insertion even if there is remaining capacity.

Definition at line 496 of file array.h.

◆ cback()

const_reference cback ( ) const
inline

Return a const reference to the last element in this array.

Invokes undefined behavior if the array is empty.

Definition at line 552 of file array.h.

◆ cbegin()

const_iterator cbegin ( ) const
inline

Return a const iterator to the start of the array.

Definition at line 392 of file array.h.

◆ cdata()

const_pointer cdata ( ) const
inline

Return a const pointer to the data held by this array.

Definition at line 423 of file array.h.

◆ cend()

const_iterator cend ( ) const
inline

Return a const iterator to the end of the array.

Definition at line 394 of file array.h.

◆ cfront()

const_reference cfront ( ) const
inline

Return a const reference to the first element in this array.

Invokes undefined behavior if the array is empty.

Definition at line 541 of file array.h.

◆ clear()

void clear ( )
inline

Equivalent to resize(0).

Definition at line 628 of file array.h.

◆ crbegin()

const_reverse_iterator crbegin ( ) const
inline

Return a const reverse iterator to the end of the array.

Definition at line 413 of file array.h.

◆ crend()

const_reverse_iterator crend ( ) const
inline

Return a const reverse iterator to the start of the array.

Definition at line 415 of file array.h.

◆ data() [1/2]

pointer data ( )
inline

Return a non-const pointer to this array's data.

The underlying data is copied if it is not uniquely owned.

Definition at line 419 of file array.h.

◆ data() [2/2]

const_pointer data ( ) const
inline

Return a const pointer to this array's data.

Definition at line 421 of file array.h.

◆ emplace_back()

void emplace_back ( Args &&...  args)
inline

Initializes a new element at the end of the array.

The underlying data is first copied if it is not uniquely owned.

See also
push_back(ElementType const&)
push_back(ElementType&&)

Definition at line 431 of file array.h.

◆ empty()

bool empty ( ) const
inline

Return true if this array contains no elements, false otherwise.

Definition at line 516 of file array.h.

◆ end() [1/2]

iterator end ( )
inline

Returns a non-const iterator to the end of the array.

The underlying data is copied if it is not uniquely owned.

Definition at line 384 of file array.h.

◆ end() [2/2]

const_iterator end ( ) const
inline

Return a const iterator to the end of the array.

Definition at line 389 of file array.h.

◆ erase() [1/2]

iterator erase ( const_iterator  pos)
inline

Removes a single element at pos from the array.

To match the behavior of std::vector, returns an iterator pointing to the position following the removed element.

Since the returned iterator is mutable, when the array is not uniquely owned, a copy will be required.

Erase invalidates all iterators (unlike std::vector where iterators prior to pos remain valid).

See also
erase(const_iterator, const_iterator)

Definition at line 656 of file array.h.

◆ erase() [2/2]

iterator erase ( const_iterator  first,
const_iterator  last 
)
inline

Remove a range of elements [first, last) from the array.

To match the behavior of std::vector, returns an iterator at the position following the removed element. If no elements are removed, a non-const iterator pointing to last will be returned.

Since the returned iterator is mutable, when the array is not uniquely owned, a copy will be required even when the contents are unchanged.

Erase invalidates all iterators (unlike std::vector where iterators prior to first remain valid).

See also
erase(const_iterator)

Definition at line 676 of file array.h.

◆ front() [1/2]

reference front ( )
inline

Return a non-const reference to the first element in this array.

The underlying data is copied if it is not uniquely owned. Invokes undefined behavior if the array is empty.

Definition at line 535 of file array.h.

◆ front() [2/2]

const_reference front ( ) const
inline

Return a const reference to the first element in this array.

Invokes undefined behavior if the array is empty.

Definition at line 538 of file array.h.

◆ max_size()

constexpr size_t max_size ( ) const
inline

Return a theoretical maximum size limit for the container.

In practice this size is unachievable due to the amount of available memory or other system limitations.

Definition at line 508 of file array.h.

◆ pop_back()

void pop_back ( )
inline

Remove the last element of an array.

The underlying data is first copied if it is not uniquely owned.

Definition at line 476 of file array.h.

◆ push_back() [1/2]

void push_back ( ElementType const &  element)
inline

Appends an element at the end of the array.

The underlying data is first copied if it is not uniquely owned.

See also
emplace_back
push_back(ElementType&&)

Definition at line 461 of file array.h.

◆ push_back() [2/2]

void push_back ( ElementType &&  element)
inline

Appends an element at the end of the array.

The underlying data is first copied if it is not uniquely owned.

See also
emplace_back
push_back(ElementType const&)

Definition at line 470 of file array.h.

◆ rbegin() [1/2]

reverse_iterator rbegin ( )
inline

Return a non-const reverse iterator to the end of the array.

The underlying data is copied if it is not uniquely owned.

Definition at line 398 of file array.h.

◆ rbegin() [2/2]

const_reverse_iterator rbegin ( ) const
inline

Return a const reverse iterator to the end of the array.

Definition at line 404 of file array.h.

◆ rend() [1/2]

reverse_iterator rend ( )
inline

Return a reverse iterator to the start of the array.

The underlying data is copied if it is not uniquely owned.

Definition at line 401 of file array.h.

◆ rend() [2/2]

const_reverse_iterator rend ( ) const
inline

Return a const reverse iterator to the start of the array.

Definition at line 408 of file array.h.

◆ reserve()

void reserve ( size_t  num)
inline

Ensure enough memory is allocated to hold num elements.

Note that this currently does not ensure that the underlying data is uniquely owned. If that is desired, invoke a method like data() first.

Definition at line 521 of file array.h.

◆ resize() [1/2]

void resize ( size_t  newSize)
inline

Resize this array.

Preserve existing elements that remain, value-initialize any newly added elements. For example, calling resize(10) on an array of size 5 would change the size to 10, the first 5 elements would be left unchanged and the last 5 elements would be value-initialized.

Definition at line 559 of file array.h.

◆ resize() [2/2]

void resize ( size_t  newSize,
FillElemsFn &&  fillElems 
)
inline

Resize this array.

Preserve existing elements that remain, initialize any newly added elements by calling fillElems(first, last). Note that this function is passed pointers to uninitialized memory, so the elements must be filled with something like placement-new.

Definition at line 573 of file array.h.

◆ size()

size_t size ( ) const
inline

Return the total number of elements in this array.

Definition at line 490 of file array.h.

◆ swap()

void swap ( VtArray< ELEM > &  other)
inline

Swap the contents of this array with other.

Definition at line 766 of file array.h.