ublas: boost::numeric::ublas::vector_slice< V > Class Template Reference

# boost::numeric::ublas::vector_slice< V > Class Template Reference

A vector referencing a non continuous subvector of elements of vector v containing all elements specified by `slice`. More...

Inherits vector_expression< vector_slice< V > >.

List of all members.

## Classes

class | const_iterator
class | iterator

## Public Types

typedef const V | const_vector_type
typedef V | vector_type
typedef V::size_type | size_type
typedef V::difference_type | difference_type
typedef V::value_type | value_type
typedef V::const_reference | const_reference
typedef boost::mpl::if_ < boost::is_const< V > , typename V::const_reference, typename V::reference >::type | reference

typedef boost::mpl::if_
< boost::is_const< V >
, typename
V::const_closure_type,
typename V::closure_type >
::type

vector_closure_type

typedef basic_range< size_type, difference_type > | range_type
typedef basic_slice< size_type, difference_type > | slice_type
typedef const self_type | const_closure_type
typedef self_type | closure_type
typedef storage_restrict_traits < typename V::storage_category, dense_proxy_tag > ::storage_category | storage_category
typedef reverse_iterator_base < const_iterator > | const_reverse_iterator
typedef reverse_iterator_base < iterator > | reverse_iterator

## Public Member Functions

BOOST_UBLAS_INLINE | vector_slice (vector_type &data, const slice_type &s)
BOOST_UBLAS_INLINE | vector_slice (const vector_closure_type &data, const slice_type &s, int)
BOOST_UBLAS_INLINE size_type | start () const
BOOST_UBLAS_INLINE difference_type | stride () const
BOOST_UBLAS_INLINE size_type | size () const
BOOST_UBLAS_INLINE const vector_closure_type & | data () const
BOOST_UBLAS_INLINE vector_closure_type & | data ()
BOOST_UBLAS_INLINE const_reference | operator() (size_type i) const
BOOST_UBLAS_INLINE reference | operator() (size_type i)
BOOST_UBLAS_INLINE const_reference | operator[] (size_type i) const
BOOST_UBLAS_INLINE reference | operator[] (size_type i)
BOOST_UBLAS_INLINE vector_slice< vector_type > | project (const range_type &r) const
BOOST_UBLAS_INLINE vector_slice< vector_type > | project (const slice_type &s) const
BOOST_UBLAS_INLINE vector_slice & | operator= (const vector_slice &vs)
BOOST_UBLAS_INLINE vector_slice & | assign_temporary (vector_slice &vs)
template<class AE >
BOOST_UBLAS_INLINE vector_slice & | operator= (const vector_expression< AE > &ae)
template<class AE >
BOOST_UBLAS_INLINE vector_slice & | assign (const vector_expression< AE > &ae)
template<class AE >
BOOST_UBLAS_INLINE vector_slice & | operator+= (const vector_expression< AE > &ae)
template<class AE >
BOOST_UBLAS_INLINE vector_slice & | plus_assign (const vector_expression< AE > &ae)
template<class AE >
BOOST_UBLAS_INLINE vector_slice & | operator-= (const vector_expression< AE > &ae)
template<class AE >
BOOST_UBLAS_INLINE vector_slice & | minus_assign (const vector_expression< AE > &ae)
template<class AT >
BOOST_UBLAS_INLINE vector_slice & | operator*= (const AT &at)
template<class AT >
BOOST_UBLAS_INLINE vector_slice & | operator/= (const AT &at)
BOOST_UBLAS_INLINE bool | same_closure (const vector_slice &vr) const
BOOST_UBLAS_INLINE bool | operator== (const vector_slice &vs) const
BOOST_UBLAS_INLINE void | swap (vector_slice vs)
BOOST_UBLAS_INLINE const_iterator | find (size_type i) const
BOOST_UBLAS_INLINE iterator | find (size_type i)
BOOST_UBLAS_INLINE const_iterator | begin () const
BOOST_UBLAS_INLINE const_iterator | end () const
BOOST_UBLAS_INLINE iterator | begin ()
BOOST_UBLAS_INLINE iterator | end ()
BOOST_UBLAS_INLINE const_reverse_iterator | rbegin () const
BOOST_UBLAS_INLINE const_reverse_iterator | rend () const
BOOST_UBLAS_INLINE reverse_iterator | rbegin ()
BOOST_UBLAS_INLINE reverse_iterator | rend ()

## Friends

BOOST_UBLAS_INLINE friend void | swap (vector_slice vs1, vector_slice vs2)

## Detailed Description

### template<class V>
class boost::numeric::ublas::vector_slice< V >

A vector slice can be used as a normal vector in any expression. If the specified slice falls outside that of the index slice of the vector, then the `vector_slice` is not a well formed Vector Expression and access to an element outside of index slice of the vector is undefined.

A slice is a generalization of a range. In a range going from to , all elements belong to the range. In a slice, a can be specified meaning to take one element over in the range specified from to . Obviously, a slice with a of 1 is equivalent to a range.

Template Parameters:

  | V | the type of vector referenced (for example `vector<double>`)