FBB::Iterator - Iterator returning plain values when dereferenced
Contents
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.
Copyright
This is free software, distributed under the terms of the GNU General Public License (GPL).
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::IteratorNamespace
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>
