...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::algorithm::split_iterator — split_iterator
// In header: <boost/algorithm/string/find_iterator.hpp> template<typename IteratorT> class split_iterator { public: // construct/copy/destruct split_iterator(); split_iterator(const split_iterator &); template<typename FinderT> split_iterator(IteratorT, IteratorT, FinderT); template<typename FinderT, typename RangeT> split_iterator(RangeT &, FinderT); // public member functions bool eof() const; // private member functions const match_type & dereference() const; void increment() ; bool equal(const split_iterator &) const; };
Split iterator encapsulates a Finder and allows for incremental searching in a string. Unlike the find iterator, split iterator iterates through gaps between matches.
Find iterator is a readable forward traversal iterator.
Dereferencing the iterator yields an iterator_range delimiting the current match.
split_iterator
public
construct/copy/destructsplit_iterator();
Construct null iterator. All null iterators are equal.
Postconditions: |
eof()==true |
split_iterator(const split_iterator & Other);
Construct a copy of the split_iterator
template<typename FinderT> split_iterator(IteratorT Begin, IteratorT End, FinderT Finder);
Construct new split_iterator for a given finder and a range.
template<typename FinderT, typename RangeT> split_iterator(RangeT & Col, FinderT Finder);
Construct new split_iterator for a given finder and a collection.
split_iterator
private member functionsconst match_type & dereference() const;
void increment() ;
bool equal(const split_iterator & Other) const;