logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

FBB::Iterator - Iterator returning plain values when dereferenced

Author

       Frank B. Brokken (f.b.brokken@rug.nl).

libbobcat-dev_6.07.01                               2005-2025                             FBB::Iterator(3bobcat)

Bobcat

       Bobcat is an acronym of `Brokken’s Own Base Classes And Templates’.

Bobcat Project Files

       o      https://fbb-git.gitlab.io/bobcat/: gitlab project page;

       Debian Bobcat project files:

       o      libbobcat6: debian package containing the shared library, changelog and copyright note;

       o      libbobcat-dev:  debian package containing the static library, headers, manual pages, and developer
              info;

Bugs

       None Reported.

Constructors

       Constructors for Iterator<Type>:

       o      explicitIterator(Tyeconst&value):
              This  constructor  initializes  the Iterator object with an initial Type value. When dereferencing
              this iterator, value is returned.

       The Iterator<Type>’s default, copy, and move constructors (and its copy and  move  assignment  operators)
       are available.

       Constructors for ReverseIterator<Type>:

       o      explicitReverseIterator(Typeconst&value):
              This  constructor  initializes  the  ReverseIterator  object  with  an  initial  Type  value. When
              dereferencing this iterator immediately following  its  construction,  the  decremented  value  is
              returned (without modifying the internally stored Typevalue);

       o      explicitReverseIterator(Iterator<Type>const&iter):
              This  constructor  initializes  the  ReverseIterator object with an initial Iterator<Type> object.
              When  dereferencing  this  iterator  immediately  following  its  construction,  the   decremented
              Iterator’s  value  is  returned  (without  modifying  the  Typevalue  that  is stored inside the
              Iterator).

       The ReverseIterator<Type>’s default, copy, and move  constructors  (and  its  copy  and  move  assignment
       operators) are available.

Description

       The  FBB::Iterator<Type>  class  template  implements  a  bidirectional  iterator  for  plain data types.
       Dereferencing FBB::Iterator objects returns values of type Type, e.g., char or int. This  iterator  comes
       in  handy  in case you need to initialize an objects with a range of values, which are of some basic type
       (see also the EXAMPLE section).

       FBB::ReverseIterator implements a reverse iterator for FBB::Iterator.

Example

       #include <algorithm>
       #include <iterator>
       #include <iostream>
       #include <string>

       #include <bobcat/iterator>

       using namespace std;
       using namespace FBB;

       int main()
       {
           copy(Iterator<int>(10), Iterator<int>(20),
                   ostream_iterator<int>(cout, ", "));
           cout << ’\n’;

           copy(Iterator<char>(*Iterator<char>::max() - 9),
                   Iterator<char>::last(*Iterator<char>::max()),
                   ostream_iterator<int>(cout, ", "));
           cout << ’\n’;

           cout << *Iterator<int>::max() << ’\n’;
           copy(Iterator<int>(*Iterator<int>::max() - 9),
                   Iterator<int>::last(*Iterator<int>::max()),
                   ostream_iterator<int>(cout, ", "));
           cout << ’\n’;

           copy(ReverseIterator<int>(20), ReverseIterator<int>(10),
                   ostream_iterator<int>(cout, ", "));
           cout << ’\n’;

           std::string letters(Iterator<char>(’a’), Iterator<char>::last(’z’));
           cout << letters << ’\n’;

           std::string caps(ReverseIterator<char>::last(’Z’),
                            ReverseIterator<char>(’A’));
           cout << caps << ’\n’;

       }

Files

bobcat/iterator - defines the class interface

Inherits From

std::iterator<std::bidirectional_iterator_tag,...>

Member Functions

       For  template  parameter  type  Type  all  members of std::iterator<std:::reverse_iterator_tag,Type> are
       available, as FBB::Iterator and FBB::ReverseIterator inherit from this class.

       o      Iterator<Type>&operator++():
              The (prefix) increment operator increments the iterator’s value and returns a reference to itself;

       o      Iterator<Type>&operator++(int):
              The (postfix) increment operator increments the iterator’s value and returns  a  copy  of  itself,
              initialized with the iterator’s value before it was incremented;

       o      Iterator<Type>&operator--():
              The (prefix) decrement operator decrements the iterator’s value and returns a reference to itself;

       o      Iterator<Type>&operator--(int):
              The  (postfix)  decrement  operator  decrements the iterator’s value and returns a copy of itself,
              initialized with the iterator’s value before it was decremented;

       o      booloperator==(Iterator<Type>const&rhs)const:
              This operator returns true if the value of the current Iterator object is equal to  the  value  of
              the rhsIterator object;

       o      booloperator!=(Iterator<Type>const&rhs)const:
              This  operator  returns true if the value of the current Iterator object is not equal to the value
              of the rhsIterator object;

       o      Type&operator*():
              The derefence operator returns a reference to the Iterator’s value.

       o      Typeconst&operator*()const:
              This derefence operator returns a reference to the Iterator’s immutable value.

Name

       FBB::Iterator - Iterator returning plain values when dereferenced

       FBB::ReverseIterator - reverse_iterator for FBB::Iterator

Namespace

FBB
       All constructors, members, operators and manipulators, mentioned in this man-page,  are  defined  in  the
       namespace FBB.

See Also

bobcat(7)

Static Member Functions

       Static members of Iterator<Type>:

       o      Iterator<Type>last(Typevalue):
              An Iterator<Type> object is returned initialized with ++value, so it can be conveniently  be  used
              to create an inclusive iterator range (see also section EXAMPLE);

       o      Iterator<Type>max():
              An    Iterator<Type>    object    is   returned   initialized   with   the   value   returned   by
              std::numeric_limits<Type>::max();

       o      Iterator<Type>min():
              An   Iterator<Type>   object   is   returned   initialized   with   the    value    returned    by
              std::numeric_limits<Type>::min()

       Static member of ReverseIterator<Type>:

       o      ReverseIterator<Type>last(Typeconst&value):
              A ReverseIterator<Type> object is returned initialized with Iterator<Type>::last(value), so it can
              be conveniently be used to create an inclusive reverse iterator range (see also section EXAMPLE);

Synopsis

#include<bobcat/iterator>

See Also