Sparse 3d array allowing space efficient access. More...
#include <vbl_sparse_array_3d.h>
Public Types | |
typedef vcl_size_t | size_type |
typedef Map::const_iterator | const_iterator |
The type of iterators into the efficient storage. | |
typedef vbl_triple< unsigned, unsigned, unsigned > | Index_type |
The type of objects used to index the sparse array. | |
typedef T | T_type |
The type of values stored by the sparse array. | |
typedef Map::value_type | sequence_value_type |
The type of values of the controlled sequence. | |
Public Member Functions | |
bool | put (unsigned i, unsigned j, unsigned k, const T &t) |
Put a value into location (i,j,k). | |
T & | operator() (unsigned i, unsigned j, unsigned k) |
Return contents of location (i,j,k). | |
const T & | operator() (unsigned i, unsigned j, unsigned k) const |
Return contents of (i,j,k). Assertion failure if not yet filled. | |
bool | fullp (unsigned i, unsigned j, unsigned k) const |
Return true if location (i,j,k) has been filled. | |
T * | get_addr (unsigned i, unsigned j, unsigned k) |
Return the address of location (i,j,k). 0 if not yet filled. | |
vcl_ostream & | print (vcl_ostream &) const |
Print the Array to a stream in "(i,j,k): value" format. | |
T & | operator() (vbl_triple< unsigned, unsigned, unsigned >i) |
Return contents at (i). | |
T const & | operator() (vbl_triple< unsigned, unsigned, unsigned >i) const |
Return contents at (i). Asserts that (i) is non-empty. | |
void | erase (vbl_triple< unsigned, unsigned, unsigned >) |
Erase element at location (i). Assertion failure if not yet filled. | |
bool | fullp (vbl_triple< unsigned, unsigned, unsigned >) const |
Return true if location (i) has been filled. | |
bool | put (vbl_triple< unsigned, unsigned, unsigned >, const T &) |
Put a value into location (i). | |
T * | get_addr (vbl_triple< unsigned, unsigned, unsigned >) |
Return the address of location (i). 0 if not yet filled. | |
void | clear () |
Empty the sparse matrix. | |
size_type | count_nonempty () const |
Return number of locations that have been assigned a value using "put". | |
const_iterator | begin () const |
A bidirectional iterator pointing at the first non-empty element. | |
const_iterator | end () const |
A bidirectional iterator pointing just beyond last non-empty element. | |
Protected Types | |
typedef vcl_map< vbl_triple < unsigned, unsigned, unsigned > , T, vcl_less< vbl_triple < unsigned, unsigned, unsigned > > > | Map |
The type of the storage. | |
Protected Attributes | |
Map | storage_ |
This stores a compact list of the values. |
Sparse 3d array allowing space efficient access.
You can use this as e.g. s(300,700,900) = T(2).
Definition at line 33 of file vbl_sparse_array_3d.h.
typedef Map::const_iterator vbl_sparse_array_base< T, vbl_triple< unsigned, unsigned, unsigned > >::const_iterator [inherited] |
The type of iterators into the efficient storage.
Definition at line 71 of file vbl_sparse_array_base.h.
typedef vbl_triple< unsigned, unsigned, unsigned > vbl_sparse_array_base< T, vbl_triple< unsigned, unsigned, unsigned > >::Index_type [inherited] |
The type of objects used to index the sparse array.
Definition at line 77 of file vbl_sparse_array_base.h.
typedef vcl_map<vbl_triple< unsigned, unsigned, unsigned > , T, vcl_less<vbl_triple< unsigned, unsigned, unsigned > > > vbl_sparse_array_base< T, vbl_triple< unsigned, unsigned, unsigned > >::Map [protected, inherited] |
The type of the storage.
Definition at line 41 of file vbl_sparse_array_base.h.
typedef Map::value_type vbl_sparse_array_base< T, vbl_triple< unsigned, unsigned, unsigned > >::sequence_value_type [inherited] |
The type of values of the controlled sequence.
The value_type is a vcl_pair<Index_type, typename T_type>
Definition at line 84 of file vbl_sparse_array_base.h.
typedef vcl_size_t vbl_sparse_array_base< T, vbl_triple< unsigned, unsigned, unsigned > >::size_type [inherited] |
Definition at line 47 of file vbl_sparse_array_base.h.
typedef T vbl_sparse_array_base< T, vbl_triple< unsigned, unsigned, unsigned > >::T_type [inherited] |
The type of values stored by the sparse array.
Definition at line 80 of file vbl_sparse_array_base.h.
const_iterator vbl_sparse_array_base< T, vbl_triple< unsigned, unsigned, unsigned > >::begin | ( | ) | const [inline, inherited] |
A bidirectional iterator pointing at the first non-empty element.
If the array is empty it points just beyond the end.
Definition at line 88 of file vbl_sparse_array_base.h.
void vbl_sparse_array_base< T, vbl_triple< unsigned, unsigned, unsigned > >::clear | ( | ) | [inherited] |
Empty the sparse matrix.
size_type vbl_sparse_array_base< T, vbl_triple< unsigned, unsigned, unsigned > >::count_nonempty | ( | ) | const [inline, inherited] |
Return number of locations that have been assigned a value using "put".
Definition at line 74 of file vbl_sparse_array_base.h.
const_iterator vbl_sparse_array_base< T, vbl_triple< unsigned, unsigned, unsigned > >::end | ( | ) | const [inline, inherited] |
A bidirectional iterator pointing just beyond last non-empty element.
Definition at line 91 of file vbl_sparse_array_base.h.
void vbl_sparse_array_base< T, vbl_triple< unsigned, unsigned, unsigned > >::erase | ( | vbl_triple< unsigned, unsigned, unsigned > | ) | [inherited] |
Erase element at location (i). Assertion failure if not yet filled.
bool vbl_sparse_array_base< T, vbl_triple< unsigned, unsigned, unsigned > >::fullp | ( | vbl_triple< unsigned, unsigned, unsigned > | ) | const [inherited] |
Return true if location (i) has been filled.
bool vbl_sparse_array_3d< T >::fullp | ( | unsigned | i, |
unsigned | j, | ||
unsigned | k | ||
) | const [inline] |
Return true if location (i,j,k) has been filled.
Definition at line 64 of file vbl_sparse_array_3d.h.
T* vbl_sparse_array_base< T, vbl_triple< unsigned, unsigned, unsigned > >::get_addr | ( | vbl_triple< unsigned, unsigned, unsigned > | ) | [inherited] |
Return the address of location (i). 0 if not yet filled.
Return the memory address of location (i). 0 if not yet filled.
T* vbl_sparse_array_3d< T >::get_addr | ( | unsigned | i, |
unsigned | j, | ||
unsigned | k | ||
) | [inline] |
Return the address of location (i,j,k). 0 if not yet filled.
Definition at line 72 of file vbl_sparse_array_3d.h.
T& vbl_sparse_array_3d< T >::operator() | ( | unsigned | i, |
unsigned | j, | ||
unsigned | k | ||
) | [inline] |
Return contents of location (i,j,k).
Returns an undefined value (in fact a T()) if location (i,j,k) has not been filled with a value.
Definition at line 48 of file vbl_sparse_array_3d.h.
T& vbl_sparse_array_base< T, vbl_triple< unsigned, unsigned, unsigned > >::operator() | ( | vbl_triple< unsigned, unsigned, unsigned > | i | ) | [inline, inherited] |
Return contents at (i).
Definition at line 50 of file vbl_sparse_array_base.h.
T const& vbl_sparse_array_base< T, vbl_triple< unsigned, unsigned, unsigned > >::operator() | ( | vbl_triple< unsigned, unsigned, unsigned > | i | ) | const [inherited] |
Return contents at (i). Asserts that (i) is non-empty.
Return contents of (i). Assertion failure if not yet filled.
const T& vbl_sparse_array_3d< T >::operator() | ( | unsigned | i, |
unsigned | j, | ||
unsigned | k | ||
) | const [inline] |
Return contents of (i,j,k). Assertion failure if not yet filled.
Definition at line 56 of file vbl_sparse_array_3d.h.
vcl_ostream & vbl_sparse_array_3d< T >::print | ( | vcl_ostream & | out | ) | const |
Print the Array to a stream in "(i,j,k): value" format.
Print the array to a stream in "(i,j,k): value" format.
Definition at line 13 of file vbl_sparse_array_3d.txx.
bool vbl_sparse_array_3d< T >::put | ( | unsigned | i, |
unsigned | j, | ||
unsigned | k, | ||
const T & | t | ||
) | [inline] |
Put a value into location (i,j,k).
Definition at line 38 of file vbl_sparse_array_3d.h.
bool vbl_sparse_array_base< T, vbl_triple< unsigned, unsigned, unsigned > >::put | ( | vbl_triple< unsigned, unsigned, unsigned > | , |
const T & | |||
) | [inherited] |
Put a value into location (i).
Map vbl_sparse_array_base< T, vbl_triple< unsigned, unsigned, unsigned > >::storage_ [protected, inherited] |
This stores a compact list of the values.
Definition at line 43 of file vbl_sparse_array_base.h.