vector< T, SELECTOR > Class Template Reference

#include <maxonstd.h>

Inheritance diagram for vector< T, SELECTOR >:

Detailed Description

template<typename T, typename SELECTOR = maxon::BaseArraySelector<>>
class maxonstd::vector< T, SELECTOR >

maxonstd::vector adapts a Maxon core array to look like a std::vector, so that it can be used as a substitute thereof. By default, it uses an underlying BaseArray with default settings, but you can choose any of the array implementations of Maxon core via the SELECTOR template parameter.

Template Parameters
TType of elements.
SELECTORTo choose a BaseArray with non-default template parameters, or a different array implementation such as BlockArray, you have to provide an array selector with the desired configuration.
See also
BaseArray

Public Types

using Array = typename SELECTOR::template Type< T >
 
using Super = container< Array >
 
using value_type = T
 
using reference = T &
 
using const_reference = const T &
 
using size_type = std::size_t
 
using difference_type = std::ptrdiff_t
 
using iterator = typename COLLECTION::Iterator
 
using const_iterator = typename COLLECTION::ConstIterator
 
- Public Types inherited from container< SELECTOR::template Type< T > >
using iterator = typename COLLECTION::Iterator
 
using const_iterator = typename COLLECTION::ConstIterator
 
using reverse_iterator = maxon::ReverseIterator< iterator >
 
using const_reverse_iterator = maxon::ReverseIterator< const_iterator >
 

Public Member Functions

 vector ()=default
 
 vector (size_type count)
 
 vector (size_type count, const T &value)
 
MAXON_IMPLICIT vector (const std::initializer_list< T > &init)
 
T * data ()
 
const T * data () const
 
T & front ()
 
const T & front () const
 
T & back ()
 
const T & back () const
 
T & at (size_type index)
 
const T & at (size_type index) const
 
void shrink_to_fit ()
 
void resize (size_type count)
 
void resize (size_type count, const T &value)
 
void reserve (size_type capacity)
 
size_type capacity () const
 
void push_back (const T &value)
 
void push_back (T &&value)
 
template<typename... ARGS>
T & emplace_back (ARGS &&... args)
 
void pop_back ()
 
iterator insert (const iterator &pos, const T &value)
 
iterator insert (const iterator &pos, T &&value)
 
template<typename IT >
iterator insert (const iterator &pos, IT &&first, IT &&last)
 
iterator insert (const const_iterator &pos, const T &value)
 
iterator insert (const const_iterator &pos, T &&value)
 
template<typename IT >
iterator insert (const const_iterator &pos, IT &&first, IT &&last)
 
iterator erase (const iterator &pos)
 
iterator erase (const iterator &first, const iterator &last)
 
iterator erase (const const_iterator &pos)
 
iterator erase (const const_iterator &first, const const_iterator &last)
 
- Public Member Functions inherited from container< SELECTOR::template Type< T > >
 container ()=default
 
 container (container &&)=default
 
 container (const container &src)
 
container & operator= (container &&)=default
 
container & operator= (const container &src)
 
maxon::Result< void > CopyFrom (const container &)=delete
 
auto begin ()
 
auto begin () const
 
auto end ()
 
auto end () const
 
auto cbegin () const
 
auto cend () const
 
reverse_iterator rbegin ()
 
const_reverse_iterator rbegin () const
 
reverse_iterator rend ()
 
const_reverse_iterator rend () const
 
const_reverse_iterator rcbegin () const
 
const_reverse_iterator rcend () const
 
void clear ()
 
bool empty () const
 
std::size_t size () const
 

Static Private Member Functions

static bool IsBaseIterator (const void *)
 
template<typename C , maxon::Bool STRIDED>
static void IsBaseIterator (const maxon::BaseIterator< C, STRIDED > *)
 

Member Typedef Documentation

◆ Array

using Array = typename SELECTOR::template Type<T>

◆ Super

using Super = container<Array>

◆ value_type

using value_type = T

◆ reference

using reference = T&

◆ const_reference

using const_reference = const T&

◆ size_type

using size_type = std::size_t

◆ difference_type

using difference_type = std::ptrdiff_t

◆ iterator

using iterator = typename COLLECTION::Iterator

◆ const_iterator

using const_iterator = typename COLLECTION::ConstIterator

Constructor & Destructor Documentation

◆ vector() [1/4]

vector ( )
default

◆ vector() [2/4]

vector ( size_type  count)
explicit

◆ vector() [3/4]

vector ( size_type  count,
const T &  value 
)

◆ vector() [4/4]

MAXON_IMPLICIT vector ( const std::initializer_list< T > &  init)

Member Function Documentation

◆ data() [1/2]

T* data ( )

◆ data() [2/2]

const T* data ( ) const

◆ front() [1/2]

T& front ( )

◆ front() [2/2]

const T& front ( ) const

◆ back() [1/2]

T& back ( )

◆ back() [2/2]

const T& back ( ) const

◆ at() [1/2]

T& at ( size_type  index)

◆ at() [2/2]

const T& at ( size_type  index) const

◆ shrink_to_fit()

void shrink_to_fit ( )

◆ resize() [1/2]

void resize ( size_type  count)

◆ resize() [2/2]

void resize ( size_type  count,
const T &  value 
)

◆ reserve()

void reserve ( size_type  capacity)

◆ capacity()

size_type capacity ( ) const

◆ push_back() [1/2]

void push_back ( const T &  value)

◆ push_back() [2/2]

void push_back ( T &&  value)

◆ emplace_back()

T& emplace_back ( ARGS &&...  args)

◆ pop_back()

void pop_back ( )

◆ insert() [1/6]

iterator insert ( const iterator &  pos,
const T &  value 
)

◆ insert() [2/6]

iterator insert ( const iterator &  pos,
T &&  value 
)

◆ insert() [3/6]

iterator insert ( const iterator &  pos,
IT &&  first,
IT &&  last 
)

◆ insert() [4/6]

iterator insert ( const const_iterator &  pos,
const T &  value 
)

◆ insert() [5/6]

iterator insert ( const const_iterator &  pos,
T &&  value 
)

◆ insert() [6/6]

iterator insert ( const const_iterator &  pos,
IT &&  first,
IT &&  last 
)

◆ erase() [1/4]

iterator erase ( const iterator &  pos)

◆ erase() [2/4]

iterator erase ( const iterator &  first,
const iterator &  last 
)

◆ erase() [3/4]

iterator erase ( const const_iterator &  pos)

◆ erase() [4/4]

iterator erase ( const const_iterator &  first,
const const_iterator &  last 
)

◆ IsBaseIterator() [1/2]

static bool IsBaseIterator ( const void *  )
staticprivate

◆ IsBaseIterator() [2/2]

static void IsBaseIterator ( const maxon::BaseIterator< C, STRIDED > *  )
staticprivate