STXXL  1.4.0
 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 1892 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 2101 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 2098 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 2104 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 2115 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 2151 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 2120 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 2135 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 2127 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 2144 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 2108 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 2111 of file vector.h.


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