Arduino PulseWire Transceiver Library
Loading...
Searching...
No Matches
Public Types | Public Member Functions
pulsewire::Vector< T > Class Template Reference

Small, header-only vector replacement for non-STL environments. More...

#include <Vector.h>

Public Types

using value_type = T
 Type alias for value type.
 
using iterator = T *
 Iterator type (pointer)
 
using const_iterator = const T *
 Const iterator type (pointer)
 

Public Member Functions

 Vector ()
 Default constructor: creates empty vector.
 
 Vector (size_t n)
 Construct vector with n default-initialized elements.
 
 Vector (const Vector &other)
 Copy constructor.
 
 Vector (Vector &&other) noexcept
 Move constructor.
 
Vectoroperator= (const Vector &other)
 Copy assignment.
 
Vectoroperator= (Vector &&other) noexcept
 Move assignment.
 
 ~Vector ()
 Destructor: frees memory.
 
void push_back (const T &value)
 Add element to end of vector.
 
iterator begin ()
 Iterator to first element.
 
iterator end ()
 Iterator to one past last element.
 
const_iterator begin () const
 Const iterator to first element.
 
const_iterator end () const
 Const iterator to one past last element.
 
Tdata ()
 Pointer to underlying data.
 
const Tdata () const
 Const pointer to underlying data.
 
Toperator[] (size_t idx)
 Access element by index.
 
const Toperator[] (size_t idx) const
 Access element by index (const)
 
size_t size () const
 Number of elements in vector.
 
bool empty () const
 True if vector is empty.
 
void clear ()
 Remove all elements.
 
Tback ()
 Access last element.
 
const Tback () const
 Access last element (const)
 
iterator erase (iterator pos)
 Erase single element at iterator pos, return iterator to next element.
 
iterator erase (iterator first, iterator last)
 Erase range [first, last), return iterator to next element.
 
void resize (size_t n)
 Resize vector to n elements.
 
void reserve (size_t cap)
 Reserve space for at least cap elements.
 
size_t capacity () const
 Current allocated capacity.
 

Detailed Description

template<typename T>
class pulsewire::Vector< T >

Small, header-only vector replacement for non-STL environments.

Provides a subset of std::vector API that the project uses:

Definition at line 29 of file Vector.h.

Member Typedef Documentation

◆ const_iterator

template<typename T >
using pulsewire::Vector< T >::const_iterator = const T*

Const iterator type (pointer)

Definition at line 36 of file Vector.h.

◆ iterator

template<typename T >
using pulsewire::Vector< T >::iterator = T*

Iterator type (pointer)

Definition at line 34 of file Vector.h.

◆ value_type

template<typename T >
using pulsewire::Vector< T >::value_type = T

Type alias for value type.

Definition at line 32 of file Vector.h.

Constructor & Destructor Documentation

◆ Vector() [1/4]

template<typename T >
pulsewire::Vector< T >::Vector ( )
inline

Default constructor: creates empty vector.

Definition at line 39 of file Vector.h.

◆ Vector() [2/4]

template<typename T >
pulsewire::Vector< T >::Vector ( size_t  n)
inlineexplicit

Construct vector with n default-initialized elements.

Definition at line 42 of file Vector.h.

◆ Vector() [3/4]

template<typename T >
pulsewire::Vector< T >::Vector ( const Vector< T > &  other)
inline

Copy constructor.

Definition at line 47 of file Vector.h.

◆ Vector() [4/4]

template<typename T >
pulsewire::Vector< T >::Vector ( Vector< T > &&  other)
inlinenoexcept

Move constructor.

Definition at line 56 of file Vector.h.

◆ ~Vector()

template<typename T >
pulsewire::Vector< T >::~Vector ( )
inline

Destructor: frees memory.

Definition at line 89 of file Vector.h.

Member Function Documentation

◆ back() [1/2]

template<typename T >
T & pulsewire::Vector< T >::back ( )
inline

Access last element.

Definition at line 123 of file Vector.h.

◆ back() [2/2]

template<typename T >
const T & pulsewire::Vector< T >::back ( ) const
inline

Access last element (const)

Definition at line 125 of file Vector.h.

◆ begin() [1/2]

template<typename T >
iterator pulsewire::Vector< T >::begin ( )
inline

Iterator to first element.

Definition at line 97 of file Vector.h.

◆ begin() [2/2]

template<typename T >
const_iterator pulsewire::Vector< T >::begin ( ) const
inline

Const iterator to first element.

Definition at line 101 of file Vector.h.

◆ capacity()

template<typename T >
size_t pulsewire::Vector< T >::capacity ( ) const
inline

Current allocated capacity.

Definition at line 167 of file Vector.h.

◆ clear()

template<typename T >
void pulsewire::Vector< T >::clear ( )
inline

Remove all elements.

Definition at line 120 of file Vector.h.

◆ data() [1/2]

template<typename T >
T * pulsewire::Vector< T >::data ( )
inline

Pointer to underlying data.

Definition at line 106 of file Vector.h.

◆ data() [2/2]

template<typename T >
const T * pulsewire::Vector< T >::data ( ) const
inline

Const pointer to underlying data.

Definition at line 108 of file Vector.h.

◆ empty()

template<typename T >
bool pulsewire::Vector< T >::empty ( ) const
inline

True if vector is empty.

Definition at line 118 of file Vector.h.

◆ end() [1/2]

template<typename T >
iterator pulsewire::Vector< T >::end ( )
inline

Iterator to one past last element.

Definition at line 99 of file Vector.h.

◆ end() [2/2]

template<typename T >
const_iterator pulsewire::Vector< T >::end ( ) const
inline

Const iterator to one past last element.

Definition at line 103 of file Vector.h.

◆ erase() [1/2]

template<typename T >
iterator pulsewire::Vector< T >::erase ( iterator  first,
iterator  last 
)
inline

Erase range [first, last), return iterator to next element.

Definition at line 137 of file Vector.h.

◆ erase() [2/2]

template<typename T >
iterator pulsewire::Vector< T >::erase ( iterator  pos)
inline

Erase single element at iterator pos, return iterator to next element.

Definition at line 128 of file Vector.h.

◆ operator=() [1/2]

template<typename T >
Vector & pulsewire::Vector< T >::operator= ( const Vector< T > &  other)
inline

Copy assignment.

Definition at line 64 of file Vector.h.

◆ operator=() [2/2]

template<typename T >
Vector & pulsewire::Vector< T >::operator= ( Vector< T > &&  other)
inlinenoexcept

Move assignment.

Definition at line 75 of file Vector.h.

◆ operator[]() [1/2]

template<typename T >
T & pulsewire::Vector< T >::operator[] ( size_t  idx)
inline

Access element by index.

Definition at line 111 of file Vector.h.

◆ operator[]() [2/2]

template<typename T >
const T & pulsewire::Vector< T >::operator[] ( size_t  idx) const
inline

Access element by index (const)

Definition at line 113 of file Vector.h.

◆ push_back()

template<typename T >
void pulsewire::Vector< T >::push_back ( const T value)
inline

Add element to end of vector.

Definition at line 92 of file Vector.h.

◆ reserve()

template<typename T >
void pulsewire::Vector< T >::reserve ( size_t  cap)
inline

Reserve space for at least cap elements.

Definition at line 157 of file Vector.h.

◆ resize()

template<typename T >
void pulsewire::Vector< T >::resize ( size_t  n)
inline

Resize vector to n elements.

Definition at line 150 of file Vector.h.

◆ size()

template<typename T >
size_t pulsewire::Vector< T >::size ( ) const
inline

Number of elements in vector.

Definition at line 116 of file Vector.h.


The documentation for this class was generated from the following file: