Overview | Group | Tree | Graph | Index | Concepts |
Finite sets of integers are instances of the handle class
IlcIntSet
. These sets are used by Solver to represent the
domains of enumerated constrained variables and to represent the values of
constrained set variables. Solver provides an efficient, optimized
implementation of finite sets as bit vectors. These finite sets are known
formally as instances of the handle classes IlcAnySet
or IlcIntSet
, depending on whether
their elements are pointers or integers.
The elements of finite sets of type IlcIntSet
are integers
of type IlcInt
. The implementation class for
finite sets of integers is the undocumented class
IlcIntSetI
.
To traverse an existing finite set, either exhaustively or in search of
an element, Solver provides iterators (such as instances of IlcIntSetIterator
). An iterator is an object constructed
from a data structure and contains a traversal state of this data
structure.
IlcIntSet
object should not contain an integer of value
IlcIntMax
. If an integer of value of
IlcIntMax
is included in an
IlcIntSet
object, an error can occur when iterating over the set.See Also:
IlcIntArray, IlcIntSetArray, IlcIntSetIterator, IlcIntSetVar, operator<<
Constructor Summary | |
---|---|
public | IlcIntSet() |
public | IlcIntSet(IlcIntSetI * impl) |
public | IlcIntSet(IloSolver s, IlcInt min, IlcInt max, IlcBool fullSet=IlcTrue) |
public | IlcIntSet(const IlcIntArray array, IlcBool fullSet=IlcTrue) |
public | IlcIntSet(IloSolver s, const IlcIntArray array, IlcBool fullSet=IlcTrue) |
Method Summary | |
---|---|
public IlcBool | add(IlcInt elt) |
public IlcIntSet | copy() const |
public IlcIntSetI * | getImpl() const |
public IlcInt | getSize() const |
public IloSolver | getSolver() const |
public IlcBool | isIn(IlcInt elt) const |
public void | operator=(const IlcIntSet & h) |
public IlcBool | remove(IlcInt elt) |
Constructor Detail |
---|
This constructor creates an empty handle. You must initialize it before you use it.
This constructor creates a handle object from a pointer to an implementation object.
This constructor creates a finite set of integers ranging from
min
to max
included. If min
is
greater than max
, then the empty set is created. If the
argument fullset
is equal to IlcTrue
, the
default value, the finite set will initially contain all its possible
values. Otherwise, the finite set will initially be empty.
This constructor also creates a finite set of integers containing
the elements of array
.
This constructor creates a finite set of integers containing the
elements of array
. If array
contains multiple
copies of a given value, that value will appear only one time in the
newly created finite set. If the argument fullset
is equal
to IlcTrue
, its default value, the finite set will initially
contain all its possible values. Otherwise, the finite set will initially
be empty. In any case, the possible elements of the finite set are exactly
those elements in array
.
Method Detail |
---|
This member function adds elt
to the invoking finite set if
elt
is a possible member of that set and if elt
is not already in that set. When both conditions are met, this member
function returns IlcTrue
. Otherwise, it returns
IlcFalse
. The effects of this member function are
reversible.
This member function creates and returns a finite set that contains the same elements as the invoking finite set.
This member function returns a pointer to the implementation object of the invoking handle.
This member function returns the size of a finite set. Clearly, this member function is useful for testing whether the invoking finite set is empty or not.
This member function returns an instance of IloSolver
associated with the invoking object.
This member function is a predicate that indicates whether or not
elt
is in the invoking finite set. It returns
IlcTrue
if elt
is in the set; otherwise, it
returns IlcFalse
.
This operator assigns an address to the handle pointer of the invoking object. That address is the location of the implementation object of the provided argument.
This member function removes elt
from the invoking finite
set. This member function returns IlcFalse
if elt
was not in that invoking set. Otherwise, it returns IlcTrue
.
The effects of this member function are reversible.