template class mrpt::containers::vector_with_small_size_optimizationΒΆ

Container that transparently and dynamically switches between a std::array and std::vector.

Used to avoid heap allocations with small vectors.

In #include <mrpt/containers/vector_with_small_size_optimization.h>

#include <mrpt/containers/vector_with_small_size_optimization.h>

template <typename VAL, size_t small_size, size_t alignment = 16>
class vector_with_small_size_optimization
{
public:
    // typedefs

    typedef T value_type;
    typedef T& reference;
    typedef const T& const_reference;
    typedef typename large_vec::difference_type difference_type;
    typedef typename large_vec::size_type size_type;
    typedef iteratorImpl<VAL, VAL*, VAL&> iterator;
    typedef iteratorImpl<VAL, const VAL*, const VAL&> const_iterator;

    // classes

    template <typename TYPE, typename POINTER, typename REFERENCE>
    class iteratorImpl;

    // construction

    vector_with_small_size_optimization();
    vector_with_small_size_optimization(size_t n);
    vector_with_small_size_optimization(const vector_with_small_size_optimization& o);
    vector_with_small_size_optimization(vector_with_small_size_optimization&& o);

    //
methods

    vector_with_small_size_optimization& operator = (const vector_with_small_size_optimization& o);
    vector_with_small_size_optimization& operator = (vector_with_small_size_optimization&& o);
    void resize(size_type n);
    void fill(const T& v);
    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(self_t& x);
    iterator begin();
    const_iterator begin() const;
    iterator end();
    const_iterator end() const;
};