mdds
Loading...
Searching...
No Matches
mdds::mtv::delayed_delete_vector< T, Allocator > Class Template Reference

#include <delayed_delete_vector.hpp>

Public Types

typedef store_type::value_type value_type
typedef store_type::size_type size_type
typedef store_type::difference_type difference_type
typedef store_type::reference reference
typedef store_type::const_reference const_reference
typedef store_type::pointer pointer
typedef store_type::const_pointer const_pointer
typedef store_type::iterator iterator
typedef store_type::reverse_iterator reverse_iterator
typedef store_type::const_iterator const_iterator
typedef store_type::const_reverse_iterator const_reverse_iterator

Public Member Functions

 delayed_delete_vector (size_t n, const T &val)
 delayed_delete_vector (size_t n)
template<typename InputIt>
 delayed_delete_vector (InputIt first, InputIt last)
iterator begin () noexcept
iterator end () noexcept
const_iterator begin () const noexcept
const_iterator end () const noexcept
reverse_iterator rbegin () noexcept
const_reverse_iterator rbegin () const noexcept
reverse_iterator rend () noexcept
const_reverse_iterator rend () const noexcept
reference operator[] (size_type pos)
const_reference operator[] (size_type pos) const
reference at (size_type pos)
const_reference at (size_type pos) const
void push_back (const T &value)
void push_back (T &&value)
void swap (delayed_delete_vector &other) noexcept(std::is_nothrow_swappable_v< store_type >)
template<typename... Args>
void emplace_back (Args &&... args)
iterator insert (iterator pos, const T &value)
iterator insert (const_iterator pos, T &&value)
template<typename InputIt>
void insert (iterator pos, InputIt first, InputIt last)
void resize (size_type count)
iterator erase (iterator pos)
iterator erase (iterator first, iterator last)
size_type capacity () const noexcept
void shrink_to_fit ()
void reserve (size_type new_cap)
size_type size () const
template<typename InputIt>
void assign (InputIt first, InputIt last)
T * data ()
const T * data () const

Detailed Description

template<typename T, typename Allocator = std::allocator<T>>
class mdds::mtv::delayed_delete_vector< T, Allocator >

Vector that delays deleting from the front of the vector, which avoids O(n^2) memory move operations when code needs to delete items from one element block and add to another element block.