Reference documentation for deal.II version Git d902c8c1aa 2019-12-15 00:36:45 -0500
\(\newcommand{\dealcoloneq}{\mathrel{\vcenter{:}}=}\)
Public Types | Public Member Functions | List of all members
Table< 1, T > Class Template Reference

#include <deal.II/base/table.h>

Inheritance diagram for Table< 1, T >:
[legend]

Public Types

using size_type = typename TableBase< 1, T >::size_type
 
- Public Types inherited from TableBase< 1, T >
using size_type = typename AlignedVector< T >::size_type
 

Public Member Functions

 Table ()=default
 
 Table (const size_type size)
 
template<typename InputIterator >
 Table (const size_type size, InputIterator entries, const bool C_style_indexing=true)
 
AlignedVector< T >::const_reference operator[] (const size_type i) const
 
AlignedVector< T >::reference operator[] (const size_type i)
 
AlignedVector< T >::const_reference operator() (const size_type i) const
 
AlignedVector< T >::reference operator() (const size_type i)
 
AlignedVector< T >::reference operator() (const TableIndices< 1 > &indices)
 
AlignedVector< T >::const_reference operator() (const TableIndices< 1 > &indices) const
 
- Public Member Functions inherited from TableBase< 1, T >
 TableBase ()=default
 
 TableBase (const TableIndices< N > &sizes)
 
 TableBase (const TableIndices< N > &sizes, InputIterator entries, const bool C_style_indexing=true)
 
 TableBase (const TableBase< N, T > &src)
 
 TableBase (const TableBase< N, T2 > &src)
 
 TableBase (TableBase< N, T > &&src) noexcept
 
 ~TableBase () override=default
 
TableBase< N, T > & operator= (const TableBase< N, T > &src)
 
TableBase< N, T > & operator= (const TableBase< N, T2 > &src)
 
TableBase< N, T > & operator= (TableBase< N, T > &&src) noexcept
 
bool operator== (const TableBase< N, T > &T2) const
 
void reset_values ()
 
void reinit (const TableIndices< N > &new_size, const bool omit_default_initialization=false)
 
size_type size (const unsigned int i) const
 
const TableIndices< N > & size () const
 
size_type n_elements () const
 
bool empty () const
 
void fill (InputIterator entries, const bool C_style_indexing=true)
 
void fill (const T &value)
 
AlignedVector< T >::reference operator() (const TableIndices< N > &indices)
 
AlignedVector< T >::const_reference operator() (const TableIndices< N > &indices) const
 
void swap (TableBase< N, T > &v)
 
std::size_t memory_consumption () const
 
void serialize (Archive &ar, const unsigned int version)
 
- Public Member Functions inherited from Subscriptor
 Subscriptor ()
 
 Subscriptor (const Subscriptor &)
 
 Subscriptor (Subscriptor &&) noexcept
 
virtual ~Subscriptor ()
 
Subscriptoroperator= (const Subscriptor &)
 
Subscriptoroperator= (Subscriptor &&) noexcept
 
void subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
 
void unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
 
unsigned int n_subscriptions () const
 
template<typename StreamType >
void list_subscribers (StreamType &stream) const
 
void list_subscribers () const
 
template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 

Additional Inherited Members

- Static Public Member Functions inherited from Subscriptor
static ::ExceptionBaseExcInUse (int arg1, std::string arg2, std::string arg3)
 
static ::ExceptionBaseExcNoSubscriber (std::string arg1, std::string arg2)
 
- Protected Member Functions inherited from TableBase< 1, T >
size_type position (const TableIndices< N > &indices) const
 
AlignedVector< T >::reference el (const TableIndices< N > &indices)
 
AlignedVector< T >::const_reference el (const TableIndices< N > &indices) const
 
- Protected Attributes inherited from TableBase< 1, T >
AlignedVector< T > values
 
TableIndices< N > table_size
 

Detailed Description

template<typename T>
class Table< 1, T >

A class representing a one-dimensional table, i.e. a vector-like class. Since the C++ library has a vector class, there is probably not much need for this particular class, but since it is so simple to implement on top of the template base class, we provide it anyway.

For the rationale of this class, and a description of the interface, see the base class.

Author
Wolfgang Bangerth, 2002

Definition at line 716 of file table.h.

Member Typedef Documentation

◆ size_type

template<typename T >
using Table< 1, T >::size_type = typename TableBase<1, T>::size_type

Integer type used to count the number of elements in this container.

Definition at line 722 of file table.h.

Constructor & Destructor Documentation

◆ Table() [1/3]

template<typename T >
Table< 1, T >::Table ( )
default

Default constructor. Set all dimensions to zero.

◆ Table() [2/3]

template<typename T >
Table< 1, T >::Table ( const size_type  size)

Constructor. Pass down the given dimension to the base class.

◆ Table() [3/3]

template<typename T >
template<typename InputIterator >
Table< 1, T >::Table ( const size_type  size,
InputIterator  entries,
const bool  C_style_indexing = true 
)

Constructor. Create a table with a given size and initialize it from a set of iterators.

This function is entirely equivalent to creating a table t of the given size and then calling

t.fill (entries, C_style_indexing);

on it, using the TableBase::fill() function where the arguments are explained in more detail. The point, however, is that that is only possible if the table can be changed after running the constructor, whereas calling the current constructor allows sizing and initializing an object right away so that it can be marked const.

Using this constructor, you can do things like this:

const double values[] = { 1, 2, 3 };
const Table<1,double> t(3, entries, true);

You can also initialize a table right from a file, using input iterators:

std::ifstream input ("myfile");
const Table<1,double> t(3,
std::istream_iterator<double>(input),
true);
Parameters
sizeThe size of this one-dimensional table.
entriesAn iterator to a set of elements from which to initialize this table. It is assumed that iterator can be incremented and dereferenced a sufficient number of times to fill this table.
C_style_indexingIf true, run over elements of the table with the last index changing fastest as we dereference subsequent elements of the input range. If false, change the first index fastest.

Member Function Documentation

◆ operator[]() [1/2]

template<typename T >
AlignedVector<T>::const_reference Table< 1, T >::operator[] ( const size_type  i) const

Access operator. Since this is a one-dimensional object, this simply accesses the requested data element. Returns a read-only reference.

◆ operator[]() [2/2]

template<typename T >
AlignedVector<T>::reference Table< 1, T >::operator[] ( const size_type  i)

Access operator. Since this is a one-dimensional object, this simply accesses the requested data element. Returns a read-write reference.

◆ operator()() [1/4]

template<typename T >
AlignedVector<T>::const_reference Table< 1, T >::operator() ( const size_type  i) const

Access operator. Since this is a one-dimensional object, this simply accesses the requested data element. Returns a read-only reference.

◆ operator()() [2/4]

template<typename T >
AlignedVector<T>::reference Table< 1, T >::operator() ( const size_type  i)

Access operator. Since this is a one-dimensional object, this simply accesses the requested data element. Returns a read-write reference.

◆ operator()() [3/4]

template<typename T >
AlignedVector<T>::reference Table< 1, T >::operator() ( const TableIndices< 1 > &  indices)

Make the corresponding operator () from the TableBase base class available also in this class.

◆ operator()() [4/4]

template<typename T >
AlignedVector<T>::const_reference Table< 1, T >::operator() ( const TableIndices< 1 > &  indices) const

Make the corresponding operator () from the TableBase base class available also in this class.


The documentation for this class was generated from the following file: