DUNE PDELab (git)

Dune::ReservedVector< T, n > Class Template Reference

A Vector class with statically reserved memory. More...

#include <dune/common/reservedvector.hh>

Public Types

typedef storage_type::value_type value_type
 The type of object, T, stored in the vector. More...
 
typedef storage_type::pointer pointer
 Pointer to T.
 
typedef storage_type::const_pointer const_pointer
 Const pointer to T.
 
typedef storage_type::reference reference
 Reference to T.
 
typedef storage_type::const_reference const_reference
 Const reference to T.
 
typedef storage_type::size_type size_type
 An unsigned integral type.
 
typedef storage_type::difference_type difference_type
 A signed integral type.
 
typedef storage_type::iterator iterator
 Iterator used to iterate through a vector.
 
typedef storage_type::const_iterator const_iterator
 Const iterator used to iterate through a vector.
 
typedef std::reverse_iterator< iteratorreverse_iterator
 Reverse iterator.
 
typedef std::reverse_iterator< const_iteratorconst_reverse_iterator
 Const reverse iterator.
 

Public Member Functions

constexpr ReservedVector () noexcept(std::is_nothrow_default_constructible_v< value_type >)
 Constructs an empty vector. More...
 
constexpr ReservedVector (size_type count) noexcept(std::is_nothrow_default_constructible_v< value_type >)
 Constructs the vector with count elements that will be default-initialized.
 
constexpr ReservedVector (size_type count, const value_type &value) noexcept(std::is_nothrow_copy_assignable_v< value_type > &&noexcept(ReservedVector(count)))
 Constructs the vector with count copies of elements with value value.
 
template<class InputIt , std::enable_if_t< std::is_convertible_v< typename std::iterator_traits< InputIt >::value_type, value_type >, int > = 0>
constexpr ReservedVector (InputIt first, InputIt last) noexcept(std::is_nothrow_copy_assignable_v< value_type > &&noexcept(ReservedVector()))
 Constructs the vector from an iterator range [first,last)
 
constexpr ReservedVector (std::initializer_list< value_type > const &l) noexcept(std::is_nothrow_copy_assignable_v< value_type > &&noexcept(ReservedVector(l.begin(), l.end())))
 Constructs the vector from an initializer list.
 
constexpr bool operator== (const ReservedVector &that) const noexcept
 Compares the values in the vector this with that for equality. More...
 
constexpr bool operator!= (const ReservedVector &that) const noexcept
 Compares the values in the vector this with that for not equality.
 
constexpr bool operator< (const ReservedVector &that) const noexcept
 Lexicographically compares the values in the vector this with that
 
constexpr bool operator> (const ReservedVector &that) const noexcept
 Lexicographically compares the values in the vector this with that
 
constexpr bool operator<= (const ReservedVector &that) const noexcept
 Lexicographically compares the values in the vector this with that
 
constexpr bool operator>= (const ReservedVector &that) const noexcept
 Lexicographically compares the values in the vector this with that
 
constexpr void clear () noexcept
 Erases all elements. More...
 
constexpr void resize (size_type s) noexcept
 Specifies a new size for the vector.
 
constexpr void push_back (const value_type &t) noexcept(std::is_nothrow_copy_assignable_v< value_type >)
 Appends an element to the end of a vector, up to the maximum size n, O(1) time.
 
constexpr void push_back (value_type &&t) noexcept(std::is_nothrow_move_assignable_v< value_type >)
 Appends an element to the end of a vector by moving the value, up to the maximum size n, O(1) time.
 
template<class... Args>
reference emplace_back (Args &&... args) noexcept(std::is_nothrow_constructible_v< value_type, decltype(args)... >)
 Appends an element to the end of a vector by constructing it in place.
 
constexpr void pop_back () noexcept
 Erases the last element of the vector, O(1) time.
 
constexpr iterator begin () noexcept
 Returns a iterator pointing to the beginning of the vector. More...
 
constexpr const_iterator begin () const noexcept
 Returns a const_iterator pointing to the beginning of the vector.
 
constexpr const_iterator cbegin () const noexcept
 Returns a const_iterator pointing to the beginning of the vector.
 
constexpr reverse_iterator rbegin () noexcept
 Returns a const reverse-iterator pointing to the end of the vector.
 
constexpr const_reverse_iterator rbegin () const noexcept
 Returns a const reverse-iterator pointing to the end of the vector.
 
constexpr const_reverse_iterator crbegin () const noexcept
 Returns a const reverse-iterator pointing to the end of the vector.
 
constexpr iterator end () noexcept
 Returns an iterator pointing to the end of the vector.
 
constexpr const_iterator end () const noexcept
 Returns a const_iterator pointing to the end of the vector.
 
constexpr const_iterator cend () const noexcept
 Returns a const_iterator pointing to the end of the vector.
 
constexpr reverse_iterator rend () noexcept
 Returns a const reverse-iterator pointing to the begin of the vector.
 
constexpr const_reverse_iterator rend () const noexcept
 Returns a const reverse-iterator pointing to the begin of the vector.
 
constexpr const_reverse_iterator crend () const noexcept
 Returns a const reverse-iterator pointing to the begin of the vector.
 
constexpr reference at (size_type i)
 Returns reference to the i'th element. More...
 
constexpr const_reference at (size_type i) const
 Returns a const reference to the i'th element.
 
constexpr reference operator[] (size_type i) noexcept
 Returns reference to the i'th element.
 
constexpr const_reference operator[] (size_type i) const noexcept
 Returns a const reference to the i'th element.
 
constexpr reference front () noexcept
 Returns reference to first element of vector.
 
constexpr const_reference front () const noexcept
 Returns const reference to first element of vector.
 
constexpr reference back () noexcept
 Returns reference to last element of vector.
 
constexpr const_reference back () const noexcept
 Returns const reference to last element of vector.
 
constexpr pointer data () noexcept
 Returns pointer to the underlying memory.
 
constexpr const_pointer data () const noexcept
 Returns const pointer to the underlying memory.
 
constexpr void fill (const value_type &value) noexcept(std::is_nothrow_copy_assignable_v< value_type >)
 Fill the container with the value. More...
 
void swap (ReservedVector &other) noexcept(std::is_nothrow_swappable_v< value_type >)
 Swap the content with another vector.
 

Friends

std::ostream & operator<< (std::ostream &s, const ReservedVector &v)
 Send ReservedVector to an output stream.
 
constexpr size_type size () const noexcept
 Returns number of elements in the vector. More...
 
constexpr bool empty () const noexcept
 Returns true if vector has no elements.
 
static constexpr size_type capacity () noexcept
 Returns current capacity (allocated memory) of the vector.
 
static constexpr size_type max_size () noexcept
 Returns the maximum length of the vector.
 

Detailed Description

template<class T, int n>
class Dune::ReservedVector< T, n >

A Vector class with statically reserved memory.

ReservedVector is something between std::array and std::vector. It is a dynamically sized vector which can be extended and shrunk using methods like push_back and pop_back, but reserved memory is statically predefined.

This implies that the vector cannot grow bigger than the predefined maximum size.

Template Parameters
TThe value type ReservedVector stores.
nThe maximum number of objects the ReservedVector can store.

Member Typedef Documentation

◆ value_type

template<class T , int n>
typedef storage_type::value_type Dune::ReservedVector< T, n >::value_type

The type of object, T, stored in the vector.

Typedefs

Constructor & Destructor Documentation

◆ ReservedVector()

template<class T , int n>
constexpr Dune::ReservedVector< T, n >::ReservedVector ( )
inlineconstexprnoexcept

Constructs an empty vector.

Constructors

Member Function Documentation

◆ at()

template<class T , int n>
constexpr reference Dune::ReservedVector< T, n >::at ( size_type  i)
inlineconstexpr

Returns reference to the i'th element.

Element access

References Dune::ReservedVector< T, n >::size().

◆ begin()

template<class T , int n>
constexpr iterator Dune::ReservedVector< T, n >::begin ( )
inlineconstexprnoexcept

◆ clear()

template<class T , int n>
constexpr void Dune::ReservedVector< T, n >::clear ( )
inlineconstexprnoexcept

Erases all elements.

Modifiers

◆ fill()

template<class T , int n>
constexpr void Dune::ReservedVector< T, n >::fill ( const value_type value)
inlineconstexprnoexcept

Fill the container with the value.

Operations

References Dune::ReservedVector< T, n >::size().

◆ operator==()

template<class T , int n>
constexpr bool Dune::ReservedVector< T, n >::operator== ( const ReservedVector< T, n > &  that) const
inlineconstexprnoexcept

Compares the values in the vector this with that for equality.

Comparison

References Dune::ReservedVector< T, n >::size().

◆ size()


The documentation for this class was generated from the following file:
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.111.3 (Nov 23, 23:29, 2024)