STL-like API

Typedefs

typedef PointerIterator< ElementTypeiterator
 Iterator type. More...
 
typedef PointerIterator< const ElementTypeconst_iterator
 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 PointerIterator< ElementType >::reference reference
 Reference type. More...
 
typedef PointerIterator< const ElementType >::reference const_reference
 Const reference type. More...
 
typedef PointerIterator< ElementType >::pointer pointer
 Pointer type. More...
 
typedef PointerIterator< const ElementType >::pointer 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...
 
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

typedef PointerIterator<const ElementType> const_iterator

Const iterator type.

Definition at line 259 of file array.h.

◆ const_pointer

typedef PointerIterator<const ElementType>::pointer const_pointer

Const pointer type.

Definition at line 274 of file array.h.

◆ const_reference

typedef PointerIterator<const ElementType>::reference const_reference

Const reference type.

Definition at line 270 of file array.h.

◆ const_reverse_iterator

typedef boost::reverse_iterator<const_iterator> const_reverse_iterator

Reverse const iterator type.

Definition at line 263 of file array.h.

◆ iterator

typedef PointerIterator<ElementType> iterator

Iterator type.

Definition at line 257 of file array.h.

◆ pointer

typedef PointerIterator<ElementType>::pointer pointer

Pointer type.

Definition at line 272 of file array.h.

◆ reference

typedef PointerIterator<ElementType>::reference reference

Reference type.

Definition at line 267 of file array.h.

◆ reverse_iterator

typedef boost::reverse_iterator<iterator> reverse_iterator

Reverse iterator type.

Definition at line 261 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 733 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 750 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 766 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 551 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 554 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 399 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 405 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 511 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 557 of file array.h.

◆ cbegin()

const_iterator cbegin ( ) const
inline

Return a const iterator to the start of the array.

Definition at line 410 of file array.h.

◆ cdata()

const_pointer cdata ( ) const
inline

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

Definition at line 441 of file array.h.

◆ cend()

const_iterator cend ( ) const
inline

Return a const iterator to the end of the array.

Definition at line 412 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 546 of file array.h.

◆ clear()

void clear ( )
inline

Equivalent to resize(0).

Definition at line 633 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 431 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 433 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 437 of file array.h.

◆ data() [2/2]

const_pointer data ( ) const
inline

Return a const pointer to this array's data.

Definition at line 439 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 449 of file array.h.

◆ empty()

bool empty ( ) const
inline

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

Definition at line 521 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 402 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 407 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 661 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 681 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 540 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 543 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 491 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 476 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 485 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 416 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 422 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 419 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 426 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 526 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 564 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 578 of file array.h.

◆ size()

size_t size ( ) const
inline

Return the total number of elements in this array.

Definition at line 505 of file array.h.

◆ swap()

void swap ( VtArray< ELEM > &  other)
inline

Swap the contents of this array with other.

Definition at line 771 of file array.h.