STXXL  1.4.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
stxxl::vector_bufreader_iterator< VectorBufReaderType > Class Template Reference

Detailed Description

template<typename VectorBufReaderType>
class stxxl::vector_bufreader_iterator< VectorBufReaderType >

Adapter for vector_bufreader to match iterator requirements of C++11 range-based loop construct.

Since vector_bufreader itself points to only one specific item, this iterator is merely a counter facade. The functions operator*() and operator++() must only be called when it is in sync with the bufreader object. This is generally only the case for an iterator constructed with begin() and then advanced with operator++(). The class checks this using asserts(), the operators will fail if used wrong.

See Efficient Sequential Reading and Writing to Vectors

Definition at line 1901 of file vector.h.

Public Types

typedef
vector_bufreader_type::value_type 
value_type
 Value type of vector. More...
 
typedef VectorBufReaderType vector_bufreader_type
 The underlying buffered reader type. More...
 
typedef
vector_bufreader_type::vector_iterator 
vector_iterator
 Use vector_iterator to reference a point in the vector. More...
 

Public Member Functions

 vector_bufreader_iterator (vector_bufreader_type &bufreader, const vector_iterator &iter)
 Construct iterator using vector_iterator. More...
 
bool operator!= (const vector_bufreader_iterator &vbi) const
 Inequality comparison operator. More...
 
const value_typeoperator* () const
 Return constant reference to current item. More...
 
vector_bufreader_iteratoroperator++ ()
 Make bufreader advance to next item (asserts if !empty() or if iterator does not point to current). More...
 
const value_typeoperator-> () const
 Return constant pointer to current item. More...
 
bool operator== (const vector_bufreader_iterator &vbi) const
 Equality comparison operator. More...
 

Protected Attributes

vector_bufreader_typem_bufreader
 Buffered reader used to access elements in vector. More...
 
vector_iterator m_iter
 Use vector_iterator to reference a point in the vector. More...
 

Member Typedef Documentation

template<typename VectorBufReaderType >
typedef vector_bufreader_type::value_type stxxl::vector_bufreader_iterator< VectorBufReaderType >::value_type

Value type of vector.

Definition at line 2114 of file vector.h.

template<typename VectorBufReaderType >
typedef VectorBufReaderType stxxl::vector_bufreader_iterator< VectorBufReaderType >::vector_bufreader_type

The underlying buffered reader type.

Definition at line 2111 of file vector.h.

template<typename VectorBufReaderType >
typedef vector_bufreader_type::vector_iterator stxxl::vector_bufreader_iterator< VectorBufReaderType >::vector_iterator

Use vector_iterator to reference a point in the vector.

Definition at line 2117 of file vector.h.

Constructor & Destructor Documentation

template<typename VectorBufReaderType >
stxxl::vector_bufreader_iterator< VectorBufReaderType >::vector_bufreader_iterator ( vector_bufreader_type bufreader,
const vector_iterator iter 
)
inline

Construct iterator using vector_iterator.

Definition at line 2128 of file vector.h.

Member Function Documentation

template<typename VectorBufReaderType >
bool stxxl::vector_bufreader_iterator< VectorBufReaderType >::operator!= ( const vector_bufreader_iterator< VectorBufReaderType > &  vbi) const
inline

Inequality comparison operator.

Definition at line 2164 of file vector.h.

template<typename VectorBufReaderType >
const value_type& stxxl::vector_bufreader_iterator< VectorBufReaderType >::operator* ( ) const
inline

Return constant reference to current item.

Definition at line 2133 of file vector.h.

template<typename VectorBufReaderType >
vector_bufreader_iterator& stxxl::vector_bufreader_iterator< VectorBufReaderType >::operator++ ( )
inline

Make bufreader advance to next item (asserts if !empty() or if iterator does not point to current).

Definition at line 2148 of file vector.h.

template<typename VectorBufReaderType >
const value_type* stxxl::vector_bufreader_iterator< VectorBufReaderType >::operator-> ( ) const
inline

Return constant pointer to current item.

Definition at line 2140 of file vector.h.

template<typename VectorBufReaderType >
bool stxxl::vector_bufreader_iterator< VectorBufReaderType >::operator== ( const vector_bufreader_iterator< VectorBufReaderType > &  vbi) const
inline

Equality comparison operator.

Definition at line 2157 of file vector.h.

Member Data Documentation

template<typename VectorBufReaderType >
vector_bufreader_type& stxxl::vector_bufreader_iterator< VectorBufReaderType >::m_bufreader
protected

Buffered reader used to access elements in vector.

Definition at line 2121 of file vector.h.

template<typename VectorBufReaderType >
vector_iterator stxxl::vector_bufreader_iterator< VectorBufReaderType >::m_iter
protected

Use vector_iterator to reference a point in the vector.

Definition at line 2124 of file vector.h.


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