Sparse 2D array allowing space efficient access of the form s(300,700) =2. More...
#include <vbl_sparse_array_2d.h>
Public Types | |
typedef vbl_sparse_array_base < T, vcl_pair< unsigned, unsigned > >::const_iterator | const_iterator |
The type of iterators into the efficient storage. | |
typedef vcl_size_t | size_type |
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, const T &t) |
Put a value into location (i,j). | |
T & | operator() (unsigned i, unsigned j) |
Return contents of location (i,j). | |
const T & | operator() (unsigned i, unsigned j) const |
Return contents of (i,j). Assertion failure if not yet filled. | |
void | erase (unsigned i, unsigned j) |
Erase element at location (i,j). Assertion failure if not yet filled. | |
bool | fullp (unsigned i, unsigned j) const |
Return true if location (i,j) has been filled. | |
T * | get_addr (unsigned i, unsigned j) |
Return the address of location (i,j). 0 if not yet filled. | |
vcl_ostream & | print (vcl_ostream &out) const |
Print the Array to a stream in "(i,j): value" format. | |
T & | operator() (vcl_pair< unsigned, unsigned >i) |
Return contents at (i). | |
T const & | operator() (vcl_pair< unsigned, unsigned >i) const |
Return contents at (i). Asserts that (i) is non-empty. | |
void | erase (vcl_pair< unsigned, unsigned >) |
Erase element at location (i). Assertion failure if not yet filled. | |
bool | fullp (vcl_pair< unsigned, unsigned >) const |
Return true if location (i) has been filled. | |
bool | put (vcl_pair< unsigned, unsigned >, const T &) |
Put a value into location (i). | |
T * | get_addr (vcl_pair< 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< vcl_pair < unsigned, unsigned >, T, vcl_less< vcl_pair< unsigned, unsigned > > > | Map |
The type of the storage. | |
Protected Attributes | |
Map | storage_ |
This stores a compact list of the values. | |
Private Types | |
typedef vbl_sparse_array_base < T, vcl_pair< unsigned, unsigned > >::Index_type | Index_type |
The type of objects used to index the sparse array. |
Sparse 2D array allowing space efficient access of the form s(300,700) =2.
Definition at line 30 of file vbl_sparse_array_2d.h.
typedef vbl_sparse_array_base<T,vcl_pair<unsigned,unsigned> >::const_iterator vbl_sparse_array_2d< T >::const_iterator |
The type of iterators into the efficient storage.
Reimplemented from vbl_sparse_array_base< T, vcl_pair< unsigned, unsigned > >.
Definition at line 34 of file vbl_sparse_array_2d.h.
typedef vbl_sparse_array_base<T,vcl_pair<unsigned,unsigned> >::Index_type vbl_sparse_array_2d< T >::Index_type [private] |
The type of objects used to index the sparse array.
Reimplemented from vbl_sparse_array_base< T, vcl_pair< unsigned, unsigned > >.
Definition at line 32 of file vbl_sparse_array_2d.h.
typedef vcl_map<vcl_pair< unsigned, unsigned > , T, vcl_less<vcl_pair< unsigned, unsigned > > > vbl_sparse_array_base< T, vcl_pair< 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, vcl_pair< 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, vcl_pair< unsigned, unsigned > >::size_type [inherited] |
Definition at line 47 of file vbl_sparse_array_base.h.
typedef T vbl_sparse_array_base< T, vcl_pair< 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, vcl_pair< 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, vcl_pair< unsigned, unsigned > >::clear | ( | ) | [inherited] |
Empty the sparse matrix.
size_type vbl_sparse_array_base< T, vcl_pair< 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, vcl_pair< 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, vcl_pair< unsigned, unsigned > >::erase | ( | vcl_pair< unsigned, unsigned > | ) | [inherited] |
Erase element at location (i). Assertion failure if not yet filled.
void vbl_sparse_array_2d< T >::erase | ( | unsigned | i, |
unsigned | j | ||
) | [inline] |
Erase element at location (i,j). Assertion failure if not yet filled.
Definition at line 57 of file vbl_sparse_array_2d.h.
bool vbl_sparse_array_base< T, vcl_pair< unsigned, unsigned > >::fullp | ( | vcl_pair< unsigned, unsigned > | ) | const [inherited] |
Return true if location (i) has been filled.
bool vbl_sparse_array_2d< T >::fullp | ( | unsigned | i, |
unsigned | j | ||
) | const [inline] |
Return true if location (i,j) has been filled.
Definition at line 62 of file vbl_sparse_array_2d.h.
T* vbl_sparse_array_base< T, vcl_pair< unsigned, unsigned > >::get_addr | ( | vcl_pair< 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_2d< T >::get_addr | ( | unsigned | i, |
unsigned | j | ||
) | [inline] |
Return the address of location (i,j). 0 if not yet filled.
Definition at line 68 of file vbl_sparse_array_2d.h.
T& vbl_sparse_array_2d< T >::operator() | ( | unsigned | i, |
unsigned | j | ||
) | [inline] |
Return contents of location (i,j).
Returns an undefined value (in fact a T()) if location (i,j) has not been filled with a value.
Definition at line 45 of file vbl_sparse_array_2d.h.
T& vbl_sparse_array_base< T, vcl_pair< unsigned, unsigned > >::operator() | ( | vcl_pair< unsigned, unsigned > | i | ) | [inline, inherited] |
Return contents at (i).
Definition at line 50 of file vbl_sparse_array_base.h.
const T& vbl_sparse_array_2d< T >::operator() | ( | unsigned | i, |
unsigned | j | ||
) | const [inline] |
Return contents of (i,j). Assertion failure if not yet filled.
Definition at line 51 of file vbl_sparse_array_2d.h.
T const& vbl_sparse_array_base< T, vcl_pair< unsigned, unsigned > >::operator() | ( | vcl_pair< 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.
vcl_ostream& vbl_sparse_array_2d< T >::print | ( | vcl_ostream & | out | ) | const [inline] |
Print the Array to a stream in "(i,j): value" format.
Definition at line 74 of file vbl_sparse_array_2d.h.
bool vbl_sparse_array_2d< T >::put | ( | unsigned | i, |
unsigned | j, | ||
const T & | t | ||
) | [inline] |
Put a value into location (i,j).
Definition at line 37 of file vbl_sparse_array_2d.h.
bool vbl_sparse_array_base< T, vcl_pair< unsigned, unsigned > >::put | ( | vcl_pair< unsigned, unsigned > | , |
const T & | |||
) | [inherited] |
Put a value into location (i).
Map vbl_sparse_array_base< T, vcl_pair< unsigned, unsigned > >::storage_ [protected, inherited] |
This stores a compact list of the values.
Definition at line 43 of file vbl_sparse_array_base.h.