linbox
Subvector< Iterator, ConstIterator > Class Template Reference

Dense subvector. More...

#include <subvector.h>

Public Types

typedef std::iterator_traits< Iterator >::value_type value_type
 
typedef VectorCategories::DenseVectorTag VectorCategory
 
typedef size_t size_type
 
typedef std::iterator_traits< Iterator >::difference_type difference_type
 
typedef std::iterator_traits< Iterator >::pointer pointer
 
typedef std::iterator_traits< Iterator >::reference reference
 
typedef const value_typeconst_reference
 
typedef Iterator iterator
 
typedef ConstIterator const_iterator
 
typedef std::reverse_iterator< iteratorreverse_iterator
 
typedef std::reverse_iterator< const_iteratorconst_reverse_iterator
 

Public Member Functions

 Subvector ()
 
template<class Vector>
 Subvector (Vector &v, size_type start, size_type stride, size_type length)
 
 Subvector (iterator Begin, iterator End)
 
 Subvector (iterator Begin, size_type length)
 
 Subvector (const Subvector &x)
 
 ~Subvector ()
 
iterator begin (void)
 
const_iterator begin (void) const
 
iterator end (void)
 
const_iterator end (void) const
 
reverse_iterator rbegin (void)
 
const_reverse_iterator rbegin (void) const
 
reverse_iterator rend (void)
 
const_reverse_iterator rend (void) const
 
reference operator[] (size_type n)
 
const_reference operator[] (size_type n) const
 
reference at (size_type n)
 
const_reference at (size_type n) const
 
reference front (void)
 
const_reference front (void) const
 
reference back (void)
 
const_reference back (void) const
 
template<class Container>
Subvectoroperator= (const Container &x)
 assign the elements of Container one by one to *this.
 
template<class Iterator2, class ConstIterator2>
Subvectoroperator= (const Subvector< Iterator2, ConstIterator2 > &sub)
 
Subvectoroperator= (const Subvector &sub)
 
size_type size (void) const
 
bool empty (void) const
 
size_type max_size (void) const
 
void swap (Subvector &x)
 

Protected Attributes

iterator _begin
 
iterator _end
 

Detailed Description

template<typename Iterator, typename ConstIterator = Iterator>
class LinBox::Subvector< Iterator, ConstIterator >

Dense subvector.

This class provides a statically sized subvector of a random access container (such as std::vector, deque). It does not work on sparse linbox vectors. It implements all of the types and methods of a std::vector except for those that invalidate iterators, i.e., those (potentially) involving vector resizing, such as push_back(), insert(), resize().

Member Typedef Documentation

◆ value_type

template<typename Iterator, typename ConstIterator = Iterator>
typedef std::iterator_traits<Iterator>::value_type value_type

◆ VectorCategory

template<typename Iterator, typename ConstIterator = Iterator>
typedef VectorCategories::DenseVectorTag VectorCategory

◆ size_type

template<typename Iterator, typename ConstIterator = Iterator>
typedef size_t size_type

◆ difference_type

template<typename Iterator, typename ConstIterator = Iterator>
typedef std::iterator_traits<Iterator>::difference_type difference_type

◆ pointer

template<typename Iterator, typename ConstIterator = Iterator>
typedef std::iterator_traits<Iterator>::pointer pointer

◆ reference

template<typename Iterator, typename ConstIterator = Iterator>
typedef std::iterator_traits<Iterator>::reference reference

◆ const_reference

template<typename Iterator, typename ConstIterator = Iterator>
typedef const value_type& const_reference

◆ iterator

template<typename Iterator, typename ConstIterator = Iterator>
typedef Iterator iterator

◆ const_iterator

template<typename Iterator, typename ConstIterator = Iterator>
typedef ConstIterator const_iterator

◆ reverse_iterator

template<typename Iterator, typename ConstIterator = Iterator>
typedef std::reverse_iterator<iterator> reverse_iterator

◆ const_reverse_iterator

template<typename Iterator, typename ConstIterator = Iterator>
typedef std::reverse_iterator<const_iterator> const_reverse_iterator

Constructor & Destructor Documentation

◆ Subvector() [1/5]

template<typename Iterator, typename ConstIterator = Iterator>
Subvector ( )
inline

◆ Subvector() [2/5]

template<typename Iterator, typename ConstIterator = Iterator>
template<class Vector>
Subvector ( Vector & v,
size_type start,
size_type stride,
size_type length )
inline

◆ Subvector() [3/5]

template<typename Iterator, typename ConstIterator = Iterator>
Subvector ( iterator Begin,
iterator End )
inline

◆ Subvector() [4/5]

template<typename Iterator, typename ConstIterator = Iterator>
Subvector ( iterator Begin,
size_type length )
inline

◆ Subvector() [5/5]

template<typename Iterator, typename ConstIterator = Iterator>
Subvector ( const Subvector< Iterator, ConstIterator > & x)
inline

◆ ~Subvector()

template<typename Iterator, typename ConstIterator = Iterator>
~Subvector ( )
inline

Member Function Documentation

◆ begin() [1/2]

template<typename Iterator, typename ConstIterator = Iterator>
iterator begin ( void )
inline

◆ begin() [2/2]

template<typename Iterator, typename ConstIterator = Iterator>
const_iterator begin ( void ) const
inline

◆ end() [1/2]

template<typename Iterator, typename ConstIterator = Iterator>
iterator end ( void )
inline

◆ end() [2/2]

template<typename Iterator, typename ConstIterator = Iterator>
const_iterator end ( void ) const
inline

◆ rbegin() [1/2]

template<typename Iterator, typename ConstIterator = Iterator>
reverse_iterator rbegin ( void )
inline

◆ rbegin() [2/2]

template<typename Iterator, typename ConstIterator = Iterator>
const_reverse_iterator rbegin ( void ) const
inline

◆ rend() [1/2]

template<typename Iterator, typename ConstIterator = Iterator>
reverse_iterator rend ( void )
inline

◆ rend() [2/2]

template<typename Iterator, typename ConstIterator = Iterator>
const_reverse_iterator rend ( void ) const
inline

◆ operator[]() [1/2]

template<typename Iterator, typename ConstIterator = Iterator>
reference operator[] ( size_type n)
inline

◆ operator[]() [2/2]

template<typename Iterator, typename ConstIterator = Iterator>
const_reference operator[] ( size_type n) const
inline

◆ at() [1/2]

template<typename Iterator, typename ConstIterator = Iterator>
reference at ( size_type n)
inline

◆ at() [2/2]

template<typename Iterator, typename ConstIterator = Iterator>
const_reference at ( size_type n) const
inline

◆ front() [1/2]

template<typename Iterator, typename ConstIterator = Iterator>
reference front ( void )
inline

◆ front() [2/2]

template<typename Iterator, typename ConstIterator = Iterator>
const_reference front ( void ) const
inline

◆ back() [1/2]

template<typename Iterator, typename ConstIterator = Iterator>
reference back ( void )
inline

◆ back() [2/2]

template<typename Iterator, typename ConstIterator = Iterator>
const_reference back ( void ) const
inline

◆ operator=() [1/3]

template<typename Iterator, typename ConstIterator = Iterator>
template<class Container>
Subvector & operator= ( const Container & x)
inline

assign the elements of Container one by one to *this.

Container must be at least as long as this.

◆ operator=() [2/3]

template<typename Iterator, typename ConstIterator = Iterator>
template<class Iterator2, class ConstIterator2>
Subvector & operator= ( const Subvector< Iterator2, ConstIterator2 > & sub)
inline

◆ operator=() [3/3]

template<typename Iterator, typename ConstIterator = Iterator>
Subvector & operator= ( const Subvector< Iterator, ConstIterator > & sub)
inline

◆ size()

template<typename Iterator, typename ConstIterator = Iterator>
size_type size ( void ) const
inline

◆ empty()

template<typename Iterator, typename ConstIterator = Iterator>
bool empty ( void ) const
inline

◆ max_size()

template<typename Iterator, typename ConstIterator = Iterator>
size_type max_size ( void ) const
inline

◆ swap()

template<typename Iterator, typename ConstIterator = Iterator>
void swap ( Subvector< Iterator, ConstIterator > & x)
inline

Field Documentation

◆ _begin

template<typename Iterator, typename ConstIterator = Iterator>
iterator _begin
protected

◆ _end

template<typename Iterator, typename ConstIterator = Iterator>
iterator _end
protected

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