MRPT
1.9.9
|
Container that transparently and dynamically switches between a std::array and std::vector.
Used to avoid heap allocations with small vectors.
#include <mrpt/containers/vector_with_small_size_optimization.h>
Definition at line 34 of file vector_with_small_size_optimization.h.
#include <mrpt/containers/vector_with_small_size_optimization.h>
Classes | |
class | iteratorImpl |
Public Types | |
using | value_type = T |
using | reference = T & |
using | const_reference = const T & |
using | difference_type = typename large_vec::difference_type |
using | size_type = typename large_vec::size_type |
using | iterator = iteratorImpl< VAL, VAL *, VAL & > |
using | const_iterator = iteratorImpl< VAL, const VAL *, const VAL & > |
Public Member Functions | |
void | resize (size_type n) |
size_t | size () const |
bool | empty () const |
reference | operator[] (size_type n) |
const_reference | operator[] (size_type n) const |
const_reference | back () const |
reference | back () |
const_reference | front () const |
reference | front () |
void | swap (vector &x) |
iterator | begin () noexcept |
const_iterator | begin () const noexcept |
iterator | end () noexcept |
const_iterator | end () const noexcept |
Private Types | |
using | T = std::conditional_t< std::is_same_v< VAL, bool >, UnspecializedBool, VAL > |
using | ALLOC = mrpt::aligned_allocator_cpp11< T > |
using | vector = vector_with_small_size_optimization< VAL, small_size, alignment > |
using | large_vec = std::vector< T, ALLOC > |
using | small_array = std::array< T, small_size > |
Private Attributes | |
large_vec | m_v |
small_array | m_a |
bool | m_is_small = true |
size_t | m_size = 0 |
|
private |
Definition at line 39 of file vector_with_small_size_optimization.h.
using mrpt::containers::vector_with_small_size_optimization< VAL, small_size, alignment >::const_iterator = iteratorImpl<VAL, const VAL*, const VAL&> |
Definition at line 134 of file vector_with_small_size_optimization.h.
using mrpt::containers::vector_with_small_size_optimization< VAL, small_size, alignment >::const_reference = const T& |
Definition at line 53 of file vector_with_small_size_optimization.h.
using mrpt::containers::vector_with_small_size_optimization< VAL, small_size, alignment >::difference_type = typename large_vec::difference_type |
Definition at line 54 of file vector_with_small_size_optimization.h.
using mrpt::containers::vector_with_small_size_optimization< VAL, small_size, alignment >::iterator = iteratorImpl<VAL, VAL*, VAL&> |
Definition at line 133 of file vector_with_small_size_optimization.h.
|
private |
Definition at line 42 of file vector_with_small_size_optimization.h.
using mrpt::containers::vector_with_small_size_optimization< VAL, small_size, alignment >::reference = T& |
Definition at line 52 of file vector_with_small_size_optimization.h.
using mrpt::containers::vector_with_small_size_optimization< VAL, small_size, alignment >::size_type = typename large_vec::size_type |
Definition at line 55 of file vector_with_small_size_optimization.h.
|
private |
Definition at line 43 of file vector_with_small_size_optimization.h.
|
private |
Definition at line 38 of file vector_with_small_size_optimization.h.
using mrpt::containers::vector_with_small_size_optimization< VAL, small_size, alignment >::value_type = T |
Definition at line 51 of file vector_with_small_size_optimization.h.
|
private |
Definition at line 41 of file vector_with_small_size_optimization.h.
|
inline |
Definition at line 167 of file vector_with_small_size_optimization.h.
Referenced by mrpt::math::CVectorDynamic< KFTYPE >::push_back().
|
inline |
Definition at line 171 of file vector_with_small_size_optimization.h.
|
inlinenoexcept |
Definition at line 203 of file vector_with_small_size_optimization.h.
Referenced by mrpt::math::CVectorDynamic< KFTYPE >::begin(), mrpt::math::CMatrixDynamic< KFTYPE >::begin(), mrpt::math::CVectorDynamic< KFTYPE >::cbegin(), and mrpt::math::CMatrixDynamic< KFTYPE >::cbegin().
|
inlinenoexcept |
Definition at line 204 of file vector_with_small_size_optimization.h.
|
inline |
Definition at line 158 of file vector_with_small_size_optimization.h.
Referenced by mrpt::math::CVectorDynamic< KFTYPE >::empty().
|
inlinenoexcept |
Definition at line 209 of file vector_with_small_size_optimization.h.
Referenced by mrpt::math::CVectorDynamic< KFTYPE >::cend(), mrpt::math::CMatrixDynamic< KFTYPE >::cend(), mrpt::math::CVectorDynamic< KFTYPE >::end(), and mrpt::math::CMatrixDynamic< KFTYPE >::end().
|
inlinenoexcept |
Definition at line 213 of file vector_with_small_size_optimization.h.
|
inline |
Definition at line 173 of file vector_with_small_size_optimization.h.
|
inline |
Definition at line 177 of file vector_with_small_size_optimization.h.
|
inline |
Definition at line 160 of file vector_with_small_size_optimization.h.
|
inline |
Definition at line 162 of file vector_with_small_size_optimization.h.
|
inline |
Definition at line 136 of file vector_with_small_size_optimization.h.
Referenced by mrpt::math::CVectorDynamic< KFTYPE >::push_back(), and mrpt::math::CVectorDynamic< KFTYPE >::realloc().
|
inline |
Definition at line 157 of file vector_with_small_size_optimization.h.
Referenced by mrpt::math::CVectorDynamic< KFTYPE >::asEigen(), mrpt::math::CVectorDynamic< KFTYPE >::operator()(), mrpt::math::CVectorDynamic< KFTYPE >::operator[](), mrpt::math::CVectorDynamic< KFTYPE >::push_back(), mrpt::math::CVectorDynamic< KFTYPE >::realloc(), mrpt::math::CVectorDynamic< KFTYPE >::rows(), and mrpt::math::CVectorDynamic< KFTYPE >::size().
|
inline |
Definition at line 179 of file vector_with_small_size_optimization.h.
Referenced by mrpt::math::CMatrixDynamic< KFTYPE >::realloc(), mrpt::math::CVectorDynamic< KFTYPE >::swap(), and mrpt::math::CMatrixDynamic< KFTYPE >::swap().
|
private |
Definition at line 46 of file vector_with_small_size_optimization.h.
Referenced by mrpt::containers::vector_with_small_size_optimization< NUMTYPE, small_size, MRPT_MAX_STATIC_ALIGN_BYTES >::back(), mrpt::containers::vector_with_small_size_optimization< NUMTYPE, small_size, MRPT_MAX_STATIC_ALIGN_BYTES >::begin(), mrpt::containers::vector_with_small_size_optimization< NUMTYPE, small_size, MRPT_MAX_STATIC_ALIGN_BYTES >::end(), mrpt::containers::vector_with_small_size_optimization< NUMTYPE, small_size, MRPT_MAX_STATIC_ALIGN_BYTES >::front(), mrpt::containers::vector_with_small_size_optimization< NUMTYPE, small_size, MRPT_MAX_STATIC_ALIGN_BYTES >::operator[](), mrpt::containers::vector_with_small_size_optimization< NUMTYPE, small_size, MRPT_MAX_STATIC_ALIGN_BYTES >::resize(), and mrpt::containers::vector_with_small_size_optimization< NUMTYPE, small_size, MRPT_MAX_STATIC_ALIGN_BYTES >::swap().
|
private |
Definition at line 47 of file vector_with_small_size_optimization.h.
Referenced by mrpt::containers::vector_with_small_size_optimization< NUMTYPE, small_size, MRPT_MAX_STATIC_ALIGN_BYTES >::back(), mrpt::containers::vector_with_small_size_optimization< NUMTYPE, small_size, MRPT_MAX_STATIC_ALIGN_BYTES >::begin(), mrpt::containers::vector_with_small_size_optimization< NUMTYPE, small_size, MRPT_MAX_STATIC_ALIGN_BYTES >::end(), mrpt::containers::vector_with_small_size_optimization< NUMTYPE, small_size, MRPT_MAX_STATIC_ALIGN_BYTES >::front(), mrpt::containers::vector_with_small_size_optimization< NUMTYPE, small_size, MRPT_MAX_STATIC_ALIGN_BYTES >::operator[](), mrpt::containers::vector_with_small_size_optimization< NUMTYPE, small_size, MRPT_MAX_STATIC_ALIGN_BYTES >::resize(), and mrpt::containers::vector_with_small_size_optimization< NUMTYPE, small_size, MRPT_MAX_STATIC_ALIGN_BYTES >::swap().
|
private |
Definition at line 48 of file vector_with_small_size_optimization.h.
Referenced by mrpt::containers::vector_with_small_size_optimization< NUMTYPE, small_size, MRPT_MAX_STATIC_ALIGN_BYTES >::back(), mrpt::containers::vector_with_small_size_optimization< NUMTYPE, small_size, MRPT_MAX_STATIC_ALIGN_BYTES >::empty(), mrpt::containers::vector_with_small_size_optimization< NUMTYPE, small_size, MRPT_MAX_STATIC_ALIGN_BYTES >::end(), mrpt::containers::vector_with_small_size_optimization< NUMTYPE, small_size, MRPT_MAX_STATIC_ALIGN_BYTES >::resize(), mrpt::containers::vector_with_small_size_optimization< NUMTYPE, small_size, MRPT_MAX_STATIC_ALIGN_BYTES >::size(), and mrpt::containers::vector_with_small_size_optimization< NUMTYPE, small_size, MRPT_MAX_STATIC_ALIGN_BYTES >::swap().
|
private |
Definition at line 45 of file vector_with_small_size_optimization.h.
Referenced by mrpt::containers::vector_with_small_size_optimization< NUMTYPE, small_size, MRPT_MAX_STATIC_ALIGN_BYTES >::back(), mrpt::containers::vector_with_small_size_optimization< NUMTYPE, small_size, MRPT_MAX_STATIC_ALIGN_BYTES >::begin(), mrpt::containers::vector_with_small_size_optimization< NUMTYPE, small_size, MRPT_MAX_STATIC_ALIGN_BYTES >::end(), mrpt::containers::vector_with_small_size_optimization< NUMTYPE, small_size, MRPT_MAX_STATIC_ALIGN_BYTES >::front(), mrpt::containers::vector_with_small_size_optimization< NUMTYPE, small_size, MRPT_MAX_STATIC_ALIGN_BYTES >::operator[](), mrpt::containers::vector_with_small_size_optimization< NUMTYPE, small_size, MRPT_MAX_STATIC_ALIGN_BYTES >::resize(), and mrpt::containers::vector_with_small_size_optimization< NUMTYPE, small_size, MRPT_MAX_STATIC_ALIGN_BYTES >::swap().
Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: 8fe78517f Sun Jul 14 19:43:28 2019 +0200 at lun oct 28 02:10:00 CET 2019 |