A sparse array of type T in 1 dimension. More...
#include <SparseArray1.h>
Public Types | |
typedef Types::value_type | value_type |
The element type of the array. | |
typedef Types::parameter_type | parameter_type |
The parameter type. | |
typedef Types::unqualified_value_type | unqualified_value_type |
The unqualified value type. | |
typedef Types::pointer | pointer |
A pointer to an array element. | |
typedef Types::const_pointer | const_pointer |
A pointer to a constant array element. | |
typedef Types::iterator | iterator |
An iterator in the array. | |
typedef Types::const_iterator | const_iterator |
A iterator on constant elements in the array. | |
typedef Types::reference | reference |
A reference to an array element. | |
typedef Types::const_reference | const_reference |
A reference to a constant array element. | |
typedef Types::size_type | size_type |
The size type is a signed integer. | |
typedef Types::difference_type | difference_type |
Pointer difference type. | |
typedef Array< 1, int > ::const_iterator | IndexConstIterator |
A const iterator over the indices. | |
Public Member Functions | |
Constructors etc. | |
SparseArray () | |
Default constructor. | |
template<typename IndexForwardIter , typename ValueForwardIter > | |
SparseArray (IndexForwardIter indicesBeginning, IndexForwardIter indicesEnd, ValueForwardIter valuesBeginning, ValueForwardIter valuesEnd, parameter_type nullValue=value_type()) | |
Construct a 1-D array sparse array from the values and indices. | |
template<typename IndexForwardIter , typename ValueForwardIter > | |
void | rebuild (IndexForwardIter indicesBeginning, IndexForwardIter indicesEnd, ValueForwardIter valuesBeginning, ValueForwardIter valuesEnd, parameter_type nullValue) |
Rebuild a 1-D sparse array from the values, the indices, and the null value. | |
template<typename IndexForwardIter , typename ValueForwardIter > | |
void | rebuild (IndexForwardIter indicesBeginning, IndexForwardIter indicesEnd, ValueForwardIter valuesBeginning, ValueForwardIter valuesEnd) |
Rebuild a 1-D sparse array from the values and indices. | |
template<typename T2 , bool A> | |
SparseArray (const Array< 1, T2, A > &array, parameter_type nullValue) | |
Construct a 1-D sparse array from a 1-D dense array of possibly different value type. | |
SparseArray (const size_type size) | |
Construct from the array size (number of non-null elements). | |
void | rebuild (const size_type size) |
Rebuild from the array size (number of non-null elements). | |
SparseArray (const SparseArray &other) | |
Copy constructor. Deep copy. | |
~SparseArray () | |
Destructor. | |
Assignment operators. | |
SparseArray & | operator= (const SparseArray &other) |
Assignment operator. | |
template<typename T2 , bool A> | |
SparseArray & | operator= (const Array< 1, T2, A > &array) |
Assignment operator for dense arrays. | |
Accessors. | |
size_type | getMemoryUsage () const |
Return the memory size. | |
parameter_type | getNull () const |
Return the null value. | |
bool | isNull (const int i) const |
Return true if the element is null. | |
bool | isNonNull (const int i) const |
Return true if the element is non-null. | |
parameter_type | operator() (const int i) const |
Return the element with the specified index. | |
bool | operator== (const SparseArray &x) const |
Return true if this sparse array is equal to the argument. | |
bool | operator!= (const SparseArray &x) const |
Return true if this sparse array is not equal to the argument. | |
template<typename T2 , bool A> | |
void | fill (ads::Array< 1, T2, A > *array) const |
Fill a dense array with the elements from this sparse array. | |
template<typename T2 , bool A> | |
void | fillNonNull (ads::Array< 1, T2, A > *array) const |
Fill a dense array using only the non-null elements from this sparse array. | |
const Array< 1, int > & | getIndices () const |
Return the array of indices. | |
int | getIndex (const int n) const |
Return the index of the specified element. | |
IndexConstIterator | getIndicesBeginning () const |
Get a const iterator to the beginning of the indices. | |
IndexConstIterator | getIndicesEnd () const |
Get a const iterator to the end of the indices. | |
Manipulators. | |
void | swap (SparseArray &other) |
Swaps data with another SparseArray. | |
Assignment operators with scalar operand. | |
SparseArray & | operator= (parameter_type x) |
Set each component to x . | |
File I/O. | |
void | put (std::ostream &out) const |
Write the array to a file stream in ascii format. | |
void | get (std::istream &in) |
Read from a file stream in ascii format. | |
Static Public Member Functions | |
Static members. | |
static int | getRank () |
Return the rank (number of dimensions) of the array. | |
Protected Attributes | |
Array< 1, int > | _indices |
The array indices. | |
value_type | _null |
The null value. |
A sparse array of type T in 1 dimension.
T | is the value type. By default it is double. |
The free functions are grouped into the following categories.
Note that operator
[] is container indexing. a
[i] is the i_th non-null element. However, operator()
is array indexing. a(i)
is the element with index i
.
typedef Types::parameter_type SparseArray< 1, T >::parameter_type |
The parameter type.
This is used for passing the value type as an argument.
Reimplemented from ArrayContainer< T >.
Reimplemented in SparseArray< 2, T >, and SparseArraySigned< 1, T >.
typedef Types::size_type SparseArray< 1, T >::size_type |
The size type is a signed integer.
Having std::size_t
(which is an unsigned integer) as the size type causes minor problems. Consult "Large Scale C++ Software Design" by John Lakos for a discussion of using unsigned integers in a class interface.
Reimplemented from ArrayContainer< T >.
Reimplemented in SparseArray< 2, T >, and SparseArraySigned< 1, T >.
typedef Types::unqualified_value_type SparseArray< 1, T >::unqualified_value_type |
The unqualified value type.
The value type with top level const
and volatile
qualifiers removed.
Reimplemented from ArrayContainer< T >.
Reimplemented in SparseArray< 2, T >, and SparseArraySigned< 1, T >.
SparseArray< 1, T >::SparseArray | ( | IndexForwardIter | indicesBeginning, | |
IndexForwardIter | indicesEnd, | |||
ValueForwardIter | valuesBeginning, | |||
ValueForwardIter | valuesEnd, | |||
parameter_type | nullValue = value_type() | |||
) | [inline] |
Construct a 1-D array sparse array from the values and indices.
If the null value is not specified, the default value for the type is used. For built-in types, value_type()
is equivalent to value_type(0)
.
SparseArray< 1, T >::SparseArray | ( | const size_type | size | ) | [inline, explicit] |
Construct from the array size (number of non-null elements).
Leave the data uninitialized.
void SparseArray< 1, T >::rebuild | ( | const size_type | size | ) | [inline] |
Rebuild from the array size (number of non-null elements).
Leave the data uninitialized.