BitMagic-C++
Public Types | Public Member Functions | Protected Types | Friends
bm::str_sparse_vector< CharType, BV, STR_SIZE >::const_iterator Class Reference

Const iterator to do quick traverse of the sparse vector. More...

#include <bmstrsparsevec.h>

Public Types

typedef std::input_iterator_tag iterator_category
 
typedef std::basic_string_view< CharType > string_view_type
 
typedef str_sparse_vector< CharType, BV, STR_SIZE > str_sparse_vector_type
 
typedef str_sparse_vector_typestr_sparse_vector_type_ptr
 
typedef str_sparse_vector_type::value_type value_type
 
typedef str_sparse_vector_type::size_type size_type
 
typedef str_sparse_vector_type::bvector_type bvector_type
 
typedef bvector_type::allocator_type allocator_type
 
typedef allocator_type::allocator_pool_type allocator_pool_type
 
typedef long long difference_type
 
typedef CharType * pointer
 
typedef CharType *& reference
 

Public Member Functions

 const_iterator () BMNOEXCEPT
 Construct iterator (not attached to any particular vector) More...
 
 const_iterator (const str_sparse_vector_type *sv) BMNOEXCEPT
 Construct iterator (attached to sparse vector) More...
 
 const_iterator (const str_sparse_vector_type *sv, size_type pos) BMNOEXCEPT
 Construct iterator (attached to sparse vector) and positioned. More...
 
 const_iterator (const const_iterator &it) BMNOEXCEPT
 
void set_substr (unsigned from, unsigned len=0) BMNOEXCEPT
 setup iterator to retrieve a sub-string of a string More...
 
bool operator== (const const_iterator &it) const BMNOEXCEPT
  More...
 
bool operator!= (const const_iterator &it) const BMNOEXCEPT
  More...
 
bool operator< (const const_iterator &it) const BMNOEXCEPT
 
bool operator<= (const const_iterator &it) const BMNOEXCEPT
 
bool operator> (const const_iterator &it) const BMNOEXCEPT
 
bool operator>= (const const_iterator &it) const BMNOEXCEPT
 
const value_typeoperator* () const
 Get current position (value) More...
 
const_iteratoroperator++ () BMNOEXCEPT
 Advance to the next available value. More...
 
const_iteratoroperator++ (int) BMNOEXCEPT
 Advance to the next available value. More...
 
const value_typevalue () const
 Get zero terminated string value at the current position. More...
 
string_view_type get_string_view () const
 Get current string as string_view. More...
 
bool is_null () const BMNOEXCEPT
 Get NULL status. More...
 
bool valid () const BMNOEXCEPT
 Returns true if iterator is at a valid position. More...
 
void invalidate () BMNOEXCEPT
 Invalidate current iterator. More...
 
size_type pos () const BMNOEXCEPT
 Current position (index) in the vector. More...
 
void go_to (size_type pos) BMNOEXCEPT
 re-position to a specified position More...
 
void advance () BMNOEXCEPT
 advance iterator forward by one More...
 

Protected Types

enum  buf_size_e { n_rows = 1024 }
 
typedef dynamic_heap_matrix< CharType, allocator_typebuffer_matrix_type
 

Friends

class str_sparse_vector
 

Detailed Description

template<typename CharType, typename BV, unsigned STR_SIZE>
class bm::str_sparse_vector< CharType, BV, STR_SIZE >::const_iterator

Const iterator to do quick traverse of the sparse vector.

Implementation uses buffer for decoding so, competing changes to the original vector may not match the iterator returned values.

This iterator keeps an operational buffer of decoded elements, so memory footprint is NOT negligable.

Examples
strsvsample01.cpp, strsvsample02.cpp, and strsvsample04.cpp.

Definition at line 213 of file bmstrsparsevec.h.

Member Enumeration Documentation

◆ buf_size_e

template<typename CharType , typename BV , unsigned STR_SIZE>
enum bm::str_sparse_vector::const_iterator::buf_size_e
protected
Enumerator
n_rows 

Definition at line 310 of file bmstrsparsevec.h.

Constructor & Destructor Documentation

◆ const_iterator() [1/3]

template<class CharType , class BV , unsigned STR_SIZE>
bm::str_sparse_vector< CharType, BV, STR_SIZE >::const_iterator::const_iterator

Construct iterator (not attached to any particular vector)

Definition at line 2446 of file bmstrsparsevec.h.

◆ const_iterator() [2/3]

template<class CharType , class BV , unsigned STR_SIZE>
bm::str_sparse_vector< CharType, BV, STR_SIZE >::const_iterator::const_iterator ( const str_sparse_vector_type sv)

Construct iterator (attached to sparse vector)

Parameters
sv- pointer to sparse vector

Definition at line 2466 of file bmstrsparsevec.h.

◆ const_iterator() [3/3]

template<typename CharType , typename BV , unsigned STR_SIZE>
bm::str_sparse_vector< CharType, BV, STR_SIZE >::const_iterator::const_iterator ( const str_sparse_vector_type sv,
size_type  pos 
)

Construct iterator (attached to sparse vector) and positioned.

Parameters
sv- reference to sparse vector
pos- position in the vector to start

Member Function Documentation

◆ advance()

template<class CharType , class BV , unsigned STR_SIZE>
void bm::str_sparse_vector< CharType, BV, STR_SIZE >::const_iterator::advance

advance iterator forward by one

Definition at line 2582 of file bmstrsparsevec.h.

References bm::id_max.

Referenced by bm::str_sparse_vector< CharType, BV, STR_SIZE >::const_iterator::operator++().

◆ get_string_view()

template<class CharType , class BV , unsigned STR_SIZE>
str_sparse_vector< CharType, BV, STR_SIZE >::const_iterator::string_view_type bm::str_sparse_vector< CharType, BV, STR_SIZE >::const_iterator::get_string_view

Get current string as string_view.

Examples
strsvsample04.cpp.

Definition at line 2542 of file bmstrsparsevec.h.

References BM_ASSERT, bm::id_max, and bm::base_sparse_vector< CharType, BV, STR_SIZE >::is_null().

Referenced by main().

◆ go_to()

template<typename CharType , typename BV , unsigned STR_SIZE>
void bm::str_sparse_vector< CharType, BV, STR_SIZE >::const_iterator::go_to ( size_type  pos)

re-position to a specified position

Examples
strsvsample01.cpp.

Definition at line 2570 of file bmstrsparsevec.h.

References bm::id_max.

Referenced by main().

◆ invalidate()

template<typename CharType , typename BV , unsigned STR_SIZE>
void bm::str_sparse_vector< CharType, BV, STR_SIZE >::const_iterator::invalidate ( )
inline

Invalidate current iterator.

Definition at line 298 of file bmstrsparsevec.h.

References bm::id_max.

◆ is_null()

template<typename CharType , typename BV , unsigned STR_SIZE>
bool bm::str_sparse_vector< CharType, BV, STR_SIZE >::const_iterator::is_null ( ) const
inline

Get NULL status.

Examples
strsvsample01.cpp, and strsvsample04.cpp.

Definition at line 292 of file bmstrsparsevec.h.

References bm::base_sparse_vector< Val, BV, MAX_SIZE >::is_null().

Referenced by main().

◆ operator!=()

template<typename CharType , typename BV , unsigned STR_SIZE>
bool bm::str_sparse_vector< CharType, BV, STR_SIZE >::const_iterator::operator!= ( const const_iterator it) const
inline

◆ operator*()

template<typename CharType , typename BV , unsigned STR_SIZE>
const value_type* bm::str_sparse_vector< CharType, BV, STR_SIZE >::const_iterator::operator* ( ) const
inline

Get current position (value)

Definition at line 273 of file bmstrsparsevec.h.

References bm::str_sparse_vector< CharType, BV, STR_SIZE >::const_iterator::value().

◆ operator++() [1/2]

template<typename CharType , typename BV , unsigned STR_SIZE>
const_iterator& bm::str_sparse_vector< CharType, BV, STR_SIZE >::const_iterator::operator++ ( )
inline

Advance to the next available value.

Definition at line 277 of file bmstrsparsevec.h.

References bm::str_sparse_vector< CharType, BV, STR_SIZE >::const_iterator::advance().

◆ operator++() [2/2]

template<typename CharType , typename BV , unsigned STR_SIZE>
const_iterator& bm::str_sparse_vector< CharType, BV, STR_SIZE >::const_iterator::operator++ ( int  )
inline

Advance to the next available value.

Definition at line 281 of file bmstrsparsevec.h.

References bm::str_sparse_vector< CharType, BV, STR_SIZE >::const_iterator::advance().

◆ operator==()

template<typename CharType , typename BV , unsigned STR_SIZE>
bool bm::str_sparse_vector< CharType, BV, STR_SIZE >::const_iterator::operator== ( const const_iterator it) const
inline

◆ pos()

template<typename CharType , typename BV , unsigned STR_SIZE>
size_type bm::str_sparse_vector< CharType, BV, STR_SIZE >::const_iterator::pos ( ) const
inline

Current position (index) in the vector.

Definition at line 301 of file bmstrsparsevec.h.

◆ set_substr()

template<class CharType , class BV , unsigned STR_SIZE>
void bm::str_sparse_vector< CharType, BV, STR_SIZE >::const_iterator::set_substr ( unsigned  from,
unsigned  len = 0 
)

setup iterator to retrieve a sub-string of a string

Parameters
from- Position of the first character to be copied
len- length of a substring (defult: 0 read to the available end)
Examples
strsvsample06.cpp.

Definition at line 2491 of file bmstrsparsevec.h.

References bm::str_sparse_vector< CharType, BV, STR_SIZE >::max_str().

Referenced by main().

◆ valid()

template<typename CharType , typename BV , unsigned STR_SIZE>
bool bm::str_sparse_vector< CharType, BV, STR_SIZE >::const_iterator::valid ( ) const
inline

Returns true if iterator is at a valid position.

Examples
strsvsample01.cpp.

Definition at line 295 of file bmstrsparsevec.h.

References bm::id_max.

Referenced by bm::str_sparse_vector< CharType, BV, STR_SIZE >::calc_octet_stat(), and main().

◆ value()

template<class CharType , class BV , unsigned STR_SIZE>
const str_sparse_vector< CharType, BV, STR_SIZE >::value_type * bm::str_sparse_vector< CharType, BV, STR_SIZE >::const_iterator::value

Get zero terminated string value at the current position.

Definition at line 2515 of file bmstrsparsevec.h.

References BM_ASSERT, bm::id_max, and bm::base_sparse_vector< CharType, BV, STR_SIZE >::is_null().

Referenced by bm::str_sparse_vector< CharType, BV, STR_SIZE >::const_iterator::operator*().


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