3 #ifndef DUNE_DYNVECTOR_HH 4 #define DUNE_DYNVECTOR_HH 11 #include <initializer_list> 33 template<
class K,
class Allocator >
39 typedef typename container_type::size_type
size_type;
42 template<
class K,
class Allocator >
55 template<
class K,
class Allocator = std::allocator< K > >
58 std::vector< K, Allocator > _data;
72 explicit DynamicVector(size_type n,
const allocator_type &a = allocator_type() ) :
73 _data( n, value_type(), a )
77 DynamicVector( size_type n, value_type c,
const allocator_type &a = allocator_type() ) :
88 Base(), _data(x._data)
93 _data(
std::move(x._data))
98 _data(x.begin(), x.end(), x.get_allocator())
106 const size_type n = x.
size();
108 for( size_type i =0; i<n ;++i)
109 _data.push_back( x[ i ] );
112 using Base::operator=;
124 _data = std::move(other._data);
135 return _data.capacity();
137 void resize (size_type n, value_type c = value_type() )
147 size_type
size()
const {
return _data.size(); }
169 template<
class K,
class Allocator >
Traits::size_type size_type
The type used for the index access and size operation.
Definition: densevector.hh:266
size_type size() const
Definition: dynvector.hh:147
DynamicVector(const DynamicVector &x)
Constructor making vector with identical coordinates.
Definition: dynvector.hh:87
DynamicVector(std::initializer_list< K > const &l)
Construct from a std::initializer_list.
Definition: dynvector.hh:82
size_type capacity() const
Number of elements for which memory has been allocated.
Definition: dynvector.hh:133
size_type size() const
size method
Definition: densevector.hh:297
void reserve(size_type n)
Definition: dynvector.hh:141
DynamicVector & operator=(DynamicVector &&other)
Move assignment operator.
Definition: dynvector.hh:122
DynamicVector & operator=(const DynamicVector &other)
Copy assignment operator.
Definition: dynvector.hh:115
DynamicVector(const allocator_type &a=allocator_type())
Constructor making uninitialized vector.
Definition: dynvector.hh:68
Implements the dense vector interface, with an exchangeable storage class.
std::vector< K, Allocator > container_type
Definition: dynvector.hh:37
DynamicVector(size_type n, value_type c, const allocator_type &a=allocator_type())
Constructor making vector with identical coordinates.
Definition: dynvector.hh:77
DynamicVector(const DynamicVector< T, Allocator > &x)
Definition: dynvector.hh:97
DynamicVector(DynamicVector &&x)
Move constructor.
Definition: dynvector.hh:92
Dune namespace.
Definition: alignment.hh:10
DynamicVector(const DenseVector< X > &x, const allocator_type &a=allocator_type())
Copy constructor from another DenseVector.
Definition: dynvector.hh:103
Stream & operator>>(Stream &stream, std::tuple< Ts... > &t)
Read a std::tuple.
Definition: streamoperators.hh:41
container_type::size_type size_type
Definition: dynvector.hh:39
Allocator allocator_type
Definition: dynvector.hh:65
Base::size_type size_type
Definition: dynvector.hh:62
A few common exception classes.
Macro for wrapping boundary checks.
DynamicVector(size_type n, const allocator_type &a=allocator_type())
Definition: dynvector.hh:72
K value_type
Definition: dynvector.hh:38
void resize(size_type n, value_type c=value_type())
Definition: dynvector.hh:137
T real_type
export the type representing the real type of the field
Definition: ftraits.hh:28
FieldTraits< K >::real_type real_type
Definition: dynvector.hh:46
Definition: matvectraits.hh:29
Traits::value_type value_type
export the type representing the field
Definition: densevector.hh:257
FieldTraits< K >::field_type field_type
Definition: dynvector.hh:45
Interface for a class of dense vectors over a given field.
Definition: densevector.hh:19
DynamicVector< K, Allocator > derived_type
Definition: dynvector.hh:36
Definition: ftraits.hh:23
constexpr auto size(const Dune::FieldVector< T, i > *, const PriorityTag< 5 > &) -> decltype(std::integral_constant< std::size_t, i >())
Definition: hybridutilities.hh:22
Construct a vector with a dynamic size.
Definition: dynvector.hh:32
Base::value_type value_type
Definition: dynvector.hh:63
Implements a generic iterator class for writing stl conformant iterators.
K & operator[](size_type i)
Definition: dynvector.hh:148
T field_type
export the type representing the field
Definition: ftraits.hh:26
const K & operator[](size_type i) const
Definition: dynvector.hh:152
#define DUNE_ASSERT_BOUNDS(cond)
If DUNE_CHECK_BOUNDS is defined: check if condition cond holds; otherwise, do nothing.
Definition: boundschecking.hh:28