BALL::EnumeratorIndex Class Reference
[Miscellaneous]
EnumeratorIndex class.
More...
#include <enumerator.h>
Inherits std::vector<Position>.
List of
all members.
Detailed Description
EnumeratorIndex class.
The Enumerator class provides a means for
enumerating all possible combinations of objects. The counting
is hereby done by the EnumeratorIndex class. This class
is derived from vector and additionally contains two vectors of
the same size which hold the modulus and the base for each
digit. The values of the EnumeratorIndex vector itself are
interpreted as an inhomogenous number consisting of digits that
have different bases. The bases are the numbers of
possibilities for each variant in the list. Most significant
component is operator [] (0), so incrementing starts at
operator [] (size() - 1)
Constructor & Destructor Documentation
template<typename Variant , typename VariantIterator
>
|
BALL::EnumeratorIndex::EnumeratorIndex |
( |
const std::list< std::pair<
VariantIterator, std::vector< Variant > > >
& |
variant_list |
) |
|
Detailed Constructor.
- Parameters:
-
|
variant_list |
the list of variants to be applied |
Member Function Documentation
| bool
BALL::EnumeratorIndex::operator!= |
( |
const EnumeratorIndex
& |
rhs |
) |
const |
Inequality operator.
- Parameters:
-
- Returns:
- true, if
rhs is not equal to
this instance
Increment an instance of EnumeratorIndex.
Increment the least significant component and apply any
overflow to more signficant components.
Decrement an instance of EnumeratorIndex.
Decrement the least significant component and apply any
underflow to more signficant components.
Lesser than operator.
- Parameters:
-
- Returns:
- true, if
rhs is lesser than
this instance
- Exceptions:
-
|
EnumeratorIndex::Incompatible |
index if the modulus vector differs, i.e. the
two indices aren't comparable |
Add a new digit.
Push the modulus to the ack of the modulus array and
initialize the corresponding digit with zero.
- Example: To construct a hex counter with three
digits, you can use something like:
EnumerationIndex counter;
counter << 16 << 16 <<
16;
- The counter will be initialized with all zeros.
- Exceptions:
-
|
OutOfRange |
if the modulus is less than 2 |
Lesser or equal operator.
- Parameters:
-
- Returns:
- true, if
rhs is lesser than or equal to
this instance
- Exceptions:
-
|
EnumeratorIndex::Incompatible |
index if the modulus vector differs, i.e. the
two indices aren't comparable |
| bool
BALL::EnumeratorIndex::operator== |
( |
const EnumeratorIndex
& |
rhs |
) |
const |
Equality operator.
- Parameters:
-
- Returns:
- true, if
rhs is equal to
this instance
Greater than operator.
- Parameters:
-
- Returns:
- true, if
rhs is greater than
this instance
- Exceptions:
-
|
EnumeratorIndex::Incompatible |
index if the modulus vector differs, i.e. the
two indices aren't comparable |
Greater or equal operator.
- Parameters:
-
- Returns:
- true, if
rhs is greater than or equal to
this instance
- Exceptions:
-
|
EnumeratorIndex::Incompatible |
index if the modulus vector differs, i.e. the
two indices aren't comparable |