DUNE PDELab (git)

Dune::Functions::ReservedDeque< T, n > Class Template Reference

A double-ended queue (deque) class with statically reserved memory. More...

#include <dune/functions/common/reserveddeque.hh>

Public Types

typedef T value_type
 The type of object, T, stored in the vector. More...
 
typedef T * pointer
 Pointer to T.
 
typedef T & reference
 Reference to T.
 
typedef const T & const_reference
 Const reference to T.
 
typedef size_t size_type
 An unsigned integral type.
 
typedef std::ptrdiff_t difference_type
 A signed integral type.
 
typedef Dune::GenericIterator< ReservedDeque, value_typeiterator
 Iterator used to iterate through a vector.
 
typedef Dune::GenericIterator< const ReservedDeque, const value_typeconst_iterator
 Const iterator used to iterate through a vector.
 

Public Member Functions

 ReservedDeque ()
 Constructor. More...
 
void clear ()
 Erases all elements. More...
 
void resize (size_t s)
 Specifies a new size for the vector.
 
void push_back (const T &t)
 Appends an element to the end of a vector, up to the maximum size n, O(1) time.
 
void push_front (const T &t)
 Prepends an element to the begin of a deque if size<capacity, O(1) time.
 
void pop_back ()
 Erases the last element of the vector, O(1) time.
 
void pop_front ()
 Erases the first element of the vector, O(1) time.
 
iterator begin ()
 Returns a iterator pointing to the beginning of the vector.
 
const_iterator begin () const
 Returns a const_iterator pointing to the beginning of the vector.
 
iterator end ()
 Returns an iterator pointing to the end of the vector.
 
const_iterator end () const
 Returns a const_iterator pointing to the end of the vector.
 
reference operator[] (size_type i)
 Returns reference to the i'th element.
 
const_reference operator[] (size_type i) const
 Returns a const reference to the i'th element.
 
reference front ()
 Returns reference to first element of vector.
 
const_reference front () const
 Returns const reference to first element of vector.
 
reference back ()
 Returns reference to last element of vector.
 
const_reference back () const
 Returns const reference to last element of vector.
 

Friends

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

Detailed Description

template<class T, int n>
class Dune::Functions::ReservedDeque< T, n >

A double-ended queue (deque) class with statically reserved memory.

ReservedDeque is something between std::array and std::deque. You have a double ended queue which can be extended and shrunk using methods like push_back and pop_back at the end, or via push_front and pop_front, but reserved memory is predefined.

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

Template Parameters
TThe data type ReservedDeque stores
nThe maximum number of objects the ReservedDeque can store

Member Typedef Documentation

◆ value_type

template<class T , int n>
typedef T Dune::Functions::ReservedDeque< T, n >::value_type

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

Typedefs

Constructor & Destructor Documentation

◆ ReservedDeque()

template<class T , int n>
Dune::Functions::ReservedDeque< T, n >::ReservedDeque ( )
inline

Constructor.

Constructors

Member Function Documentation

◆ clear()

template<class T , int n>
void Dune::Functions::ReservedDeque< T, n >::clear ( )
inline

Erases all elements.

Data access operations

◆ size()

template<class T , int n>
size_type Dune::Functions::ReservedDeque< T, n >::size ( ) const
inline

Returns number of elements in the vector.

Informative Methods


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)