Dune Core Modules (unstable)
A vector of blocks with memory management. More...
#include <dune/istl/bvector.hh>
Public Types | |
using | field_type = typename Imp::BlockTraits< B >::field_type |
export the type representing the field | |
typedef B | block_type |
export the type representing the components | |
typedef A | allocator_type |
export the allocator type | |
typedef A::size_type | size_type |
The type for the index access. | |
typedef Imp::block_vector_unmanaged< B, size_type >::Iterator | Iterator |
make iterators available as types | |
typedef Imp::block_vector_unmanaged< B, size_type >::ConstIterator | ConstIterator |
make iterators available as types | |
Public Member Functions | |
BlockVector () | |
makes empty vector | |
BlockVector (size_type _n) | |
make vector with _n components | |
BlockVector (std::initializer_list< B > const &l) | |
Construct from a std::initializer_list. | |
template<typename S > | |
BlockVector (size_type _n, S _capacity) | |
Make vector with _n components but preallocating capacity components. More... | |
void | reserve (size_type capacity) |
Reserve space. More... | |
size_type | capacity () const |
Get the capacity of the vector. More... | |
void | resize (size_type size) |
Resize the vector. More... | |
BlockVector (const BlockVector &a) noexcept(noexcept(std::declval< BlockVector >().storage_=a.storage_)) | |
copy constructor | |
BlockVector (BlockVector &&a) noexcept(noexcept(std::declval< BlockVector >().swap(a))) | |
move constructor | |
BlockVector & | operator= (const BlockVector &a) noexcept(noexcept(std::declval< BlockVector >().storage_=a.storage_)) |
assignment | |
BlockVector & | operator= (BlockVector &&a) noexcept(noexcept(std::declval< BlockVector >().swap(a))) |
move assignment | |
void | swap (BlockVector &other) noexcept(noexcept(std::declval< BlockVector & >().storage_.swap(other.storage_))) |
swap operation | |
BlockVector & | operator= (const field_type &k) |
assign from scalar | |
Detailed Description
class Dune::BlockVector< B, A >
A vector of blocks with memory management.
BlockVector adds memory management with ordinary copy semantics to the block_vector_unmanaged template.
Error checking: no error checking is provided normally. Setting the compile time switch DUNE_ISTL_WITH_CHECKING enables error checking.
Constructor & Destructor Documentation
◆ BlockVector()
|
inline |
Make vector with _n components but preallocating capacity components.
If _n > capacity then space for _n entries is allocated.
- Note
- This constructor is somewhat dangerous. People may be tempted to write something like expecting to obtain a vector of 100 doubles initialized with zero. However, the code calls this constructor which tacitly does something else!BlockVector<FieldVector<double,1> > my_vector(100,0);
Member Function Documentation
◆ capacity()
|
inline |
Get the capacity of the vector.
I. e. the maximum number of elements the vector can hold.
- Returns
- The capacity of the vector.
◆ reserve()
|
inline |
Reserve space.
Allocate storage for up to capacity
blocks. Resizing won't cause reallocation until the size exceeds the capacity
- Parameters
-
capacity The maximum number of elements the vector needs to hold.
◆ resize()
|
inline |
Resize the vector.
Resize the vector to the given number of blocks. Blocks below the given size are copied (moved if possible). Old blocks above the given size are destructed, new blocks above the given size are value-initialized.
- Parameters
-
size The new number of blocks of the vector.
The documentation for this class was generated from the following file:
- dune/istl/bvector.hh