Public Member Functions | |
Table () | |
Table (const unsigned int size1, const unsigned int size2) | |
void | reinit (const unsigned int size1, const unsigned int size2) |
internal::TableBaseAccessors::Accessor < 2, T, true, 1 > | operator[] (const unsigned int i) const |
internal::TableBaseAccessors::Accessor < 2, T, false, 1 > | operator[] (const unsigned int i) |
const T & | operator() (const unsigned int i, const unsigned int j) const |
T & | operator() (const unsigned int i, const unsigned int j) |
T & | operator() (const TableIndices< 2 > &indices) |
const T & | operator() (const TableIndices< 2 > &indices) const |
unsigned int | n_rows () const |
unsigned int | n_cols () const |
Protected Member Functions | |
T & | el (const unsigned int i, const unsigned int j) |
const T & | el (const unsigned int i, const unsigned int j) const |
A class representing a two-dimensional table, i.e. a matrix of objects (not necessarily only numbers).
For the rationale of this class, and a description of the interface, see the base class. Since this serves as the base class of the full matrix classes in this library, and to keep a minimal compatibility with a predecessor class (vector2d
), some additional functions are provided.
Constructor. Pass down the given dimensions to the base class.
void Table< 2, T >::reinit | ( | const unsigned int | size1, | |
const unsigned int | size2 | |||
) |
Reinitialize the object. This function is mostly here for compatibility with the earlier vector2d
class. Passes down to the base class by converting the arguments to the data type requested by the base class.
internal::TableBaseAccessors::Accessor<2,T,true,1> Table< 2, T >::operator[] | ( | const unsigned int | i | ) | const |
Access operator. Generate an object that accesses the requested row of this two-dimensional table. Range checks are performed.
This version of the function only allows read access.
internal::TableBaseAccessors::Accessor<2,T,false,1> Table< 2, T >::operator[] | ( | const unsigned int | i | ) |
Access operator. Generate an object that accesses the requested row of this two-dimensional table. Range checks are performed.
This version of the function allows read-write access.
const T& Table< 2, T >::operator() | ( | const unsigned int | i, | |
const unsigned int | j | |||
) | const |
Direct access to one element of the table by specifying all indices at the same time. Range checks are performed.
This version of the function only allows read access.
Direct access to one element of the table by specifying all indices at the same time. Range checks are performed.
This version of the function allows read-write access.
T& Table< 2, T >::operator() | ( | const TableIndices< 2 > & | indices | ) |
Make the corresponding operator() from the TableBase base class available also in this class.
const T& Table< 2, T >::operator() | ( | const TableIndices< 2 > & | indices | ) | const |
Make the corresponding operator() from the TableBase base class available also in this class.
Number of rows. This function really makes only sense since we have a two-dimensional object here.
Number of columns. This function really makes only sense since we have a two-dimensional object here.
T& Table< 2, T >::el | ( | const unsigned int | i, | |
const unsigned int | j | |||
) | [protected] |
Return a read-write reference to the element (i,j)
.
This function does no bounds checking and is only to be used internally and in functions already checked.
These functions are mainly here for compatibility with a former implementation of these table classes for 2d arrays, then called vector2d
.
const T& Table< 2, T >::el | ( | const unsigned int | i, | |
const unsigned int | j | |||
) | const [protected] |
Return the value of the element (i,j)
as a read-only reference.
This function does no bounds checking and is only to be used internally and in functions already checked.
We return the requested value as a constant reference rather than by value since this object may hold data types that may be large, and we don't know here whether copying is expensive or not.
These functions are mainly here for compatibility with a former implementation of these table classes for 2d arrays, then called vector2d
.