Signal/Geometry Processing Library (SPL)  1.1.24
SPL::Array2< T > Class Template Reference

A two-dimensional array class with lazy copying and reference counting. More...

#include <Array2.hpp>

Public Types

typedef T ElemType
 The type of the elements in the array. More...
 
typedef std::vector< T >::iterator Iterator
 A mutable iterator for all elements in the array. More...
 
typedef std::vector< T >::const_iterator ConstIterator
 A constant iterator for all elements in the array. More...
 
typedef Iterator XIterator
 A mutable iterator for elements of a row in the array. More...
 
typedef std::vector< T >::const_iterator ConstXIterator
 A constant iterator for elements of a row in the array. More...
 
typedef YIter< T > YIterator
 A mutable iterator for elements of a column in the array. More...
 
typedef YIter< const T > ConstYIterator
 A constant iterator for elements of a column in the array. More...
 

Public Member Functions

 Array2 ()
 Create an empty array. More...
 
 Array2 (int width, int height)
 Create an array of the specified width and height. More...
 
 Array2 (int width, int height, const T &value)
 Create an array of the specified width and height with the elements of the array initialized to the specified value. More...
 
template<class InputIter >
 Array2 (int width, int height, InputIter data)
 Create an array of the specified width and height with the elements of the array initialized to the specified data. More...
 
 ~Array2 ()
 The destructor. More...
 
 Array2 (const Array2 &a)
 The copy constructor. More...
 
template<class OtherType >
 Array2 (const Array2< OtherType > &a)
 Create an array from an array having elements of a different type. More...
 
Array2operator= (const Array2 &a)
 The assignment operator. More...
 
template<class OtherType >
Array2operator= (const Array2< OtherType > &a)
 Assign another array with elements of a different type to this array. More...
 
Array2operator+= (const Array2 &a)
 Add another array (elementwise) to this array. More...
 
Array2operator-= (const Array2 &a)
 Subtract another array (elementwise) from this array. More...
 
Array2operator*= (const Array2 &a)
 Multiply another array (elementwise) by this array. More...
 
Array2operator/= (const Array2 &a)
 Divide this array (elementwise) by another array. More...
 
Array2operator+= (const T &a)
 Add the specified value to each element in the array. More...
 
Array2operator-= (const T &a)
 Subtract the specified value from each element in the array. More...
 
Array2operator*= (const T &a)
 Multiply each element in the array by the specified value. More...
 
Array2operator/= (const T &a)
 Divide each element in the array by the specified value. More...
 
int getWidth () const
 Get the width of the array. More...
 
int getHeight () const
 Get the height of the array. More...
 
int getSize () const
 Get the number of elements in the array. More...
 
bool isShared () const
 Is the data for this array shared with another array? More...
 
bool isSharedWith (const Array2 &a) const
 Is the data for this array shared with the specified array? More...
 
T & operator() (int x, int y)
 Get a mutable reference to the (x,y)-th element in the array. More...
 
const T & operator() (int x, int y) const
 Get a const reference to the (x,y)-th element in the array. More...
 
T & operator() (int i)
 Get a mutable reference to the i-th element in the array. More...
 
const T & operator() (int i) const
 Get a const reference to the i-th element in the array. More...
 
ConstIterator begin () const
 Get a const iterator for the first element in the array. More...
 
Iterator begin ()
 Get a mutable iterator for the first element in the array. More...
 
ConstIterator end () const
 Get a const iterator for one past the last element in the array. More...
 
Iterator end ()
 Get a mutable iterator for one past the last element in the array. More...
 
ConstXIterator rowBegin (int y) const
 Get a const iterator for the first element in the specified row of the array. More...
 
XIterator rowBegin (int y)
 Get a mutable iterator for the first element in the specified row of the array. More...
 
ConstXIterator rowEnd (int y) const
 Get a const iterator for one past the end in the specified row of the array. More...
 
XIterator rowEnd (int y)
 Get a mutable iterator for one past the end in the specified row of the array. More...
 
ConstYIterator colBegin (int x) const
 Get a const iterator for the first element in the specified column of the array. More...
 
YIterator colBegin (int x)
 Get a mutable iterator for the first element in the specified column of the array. More...
 
ConstYIterator colEnd (int x) const
 Get a const iterator for one past the end in the specified column of the array. More...
 
YIterator colEnd (int x)
 Get a mutable iterator for one past the end in the specified column of the array. More...
 
void resize (int width, int height)
 Change the size of the array. More...
 
template<class InputIterator >
void resize (int width, int height, InputIterator data)
 Change the size of the array, initializing the resized array with the data obtained from the specified input iterator. More...
 
max () const
 Get the maximum of the elements in the array. More...
 
min () const
 Get the minimum of the elements in the array. More...
 
sum () const
 Get the sum of the elements in the array. More...
 
std::ostream & output (std::ostream &out, int fieldWidth) const
 Output an array to a stream using the specified field width for each array element. More...
 
int load (const char *fileName)
 Load an array from the file with the specified name. More...
 
int save (const char *fileName) const
 Save an array to the file with the specified name. More...
 
void fill (const T &value=T(0))
 Set all elements in the array to the specified value. More...
 
Array2flipud ()
 Flip the array upside down. More...
 
Array2fliplr ()
 Flip the array left to right. More...
 
void swap (Array2 &a)
 Swap the array data with the data of the specified array. More...
 
void dump (std::ostream &out) const
 Output information about an array to a stream for debugging. More...
 
void unshare () const
 Force the underlying data to be copied if the data is shared. More...
 

Detailed Description

template<class T>
class SPL::Array2< T >

A two-dimensional array class with lazy copying and reference counting.

Member Typedef Documentation

template<class T>
typedef std::vector<T>::const_iterator SPL::Array2< T >::ConstIterator

A constant iterator for all elements in the array.

template<class T>
typedef std::vector<T>::const_iterator SPL::Array2< T >::ConstXIterator

A constant iterator for elements of a row in the array.

template<class T>
typedef YIter<const T> SPL::Array2< T >::ConstYIterator

A constant iterator for elements of a column in the array.

template<class T>
typedef T SPL::Array2< T >::ElemType

The type of the elements in the array.

template<class T>
typedef std::vector<T>::iterator SPL::Array2< T >::Iterator

A mutable iterator for all elements in the array.

template<class T>
typedef Iterator SPL::Array2< T >::XIterator

A mutable iterator for elements of a row in the array.

template<class T>
typedef YIter<T> SPL::Array2< T >::YIterator

A mutable iterator for elements of a column in the array.

Constructor & Destructor Documentation

template<class T>
template<class InputIter >
SPL::Array2< T >::Array2 ( int  width,
int  height,
InputIter  data 
)

Create an array of the specified width and height with the elements of the array initialized to the specified data.

template<class T>
template<class OtherType >
SPL::Array2< T >::Array2 ( const Array2< OtherType > &  a)

Create an array from an array having elements of a different type.

Member Function Documentation

template<class T>
template<class OtherType >
Array2& SPL::Array2< T >::operator= ( const Array2< OtherType > &  a)

Assign another array with elements of a different type to this array.


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