[ VIGRA Homepage | Function Index | Class Index | Namespaces | File List | Main Page ]

Public Types | Public Member Functions
ArrayVector< T, Alloc > Class Template Reference

#include <vigra/array_vector.hxx>

Inheritance diagram for ArrayVector< T, Alloc >:
ArrayVectorView< T >

List of all members.

Public Types

typedef view_type::value_type value_type

Public Member Functions

template<class U >
this_typeoperator= (ArrayVectorView< U > const &rhs)

Detailed Description

template<class T, class Alloc>
class vigra::ArrayVector< T, Alloc >

Replacement for std::vector.

This template implements the same functionality as a href="http://www.sgi.com/tech/stl/Vector.html">std::vector (see there for detailed documentation). However, it gives two useful guarantees, that std::vector fails to provide:

This means that memory managed by ArrayVector can be passed to algorithms that expect raw memory. This is especially important when lagacy or C code has to be called, but it is also useful for certain optimizations.

Moreover, ArrayVector is derived from ArrayVectorView so that one can create views of the array (in particular, subarrays). This implies another important difference to std::vector: the indexing operator (ArrayVector::operator[]) takes signed indices. In this way, an ArrayVectorView can be used with negative indices:

    ArrayVector<int> data(100);
    ArrayVectorView<int> view = data.subarray(50, 100);

    view[-50] = 1; // valid access

Refer to the documentation of std::vector for a detailed description of ArrayVector functionality.

#include <vigra/array_vector.hxx>
Namespace: vigra


Member Typedef Documentation

default constructor

Reimplemented from ArrayVectorView< T >.


Member Function Documentation

ArrayVector< T, Alloc > & operator= ( ArrayVectorView< U > const &  rhs)

Copy assignment. When the shapes of the two arrays match, the array contents (not the pointers) are copied. Otherwise, a PreconditionViolation exception is thrown.

Reimplemented from ArrayVectorView< T >.


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

© Ullrich Köthe (ullrich.koethe@iwr.uni-heidelberg.de)
Heidelberg Collaboratory for Image Processing, University of Heidelberg, Germany

html generated using doxygen and Python
vigra 1.7.0 (Thu Aug 25 2011)