跳至主内容
框架 无框架

类IlcIntTupleSet

定义文件: ilcp/cpext.h
包含文件: <ilcp/cpextilcp/cpext.h
IlcIntTupleSet的地图IlcIntTupleSetIlcIntTupleSet
表示整数元组集合的类。

整数元组是整数值的有序集合。 一组整数元组由 "IlcIntTupleSet实例表示。 也就是说,整数元组集合的元素都是整数元组。 元组中值的个数称为元组的可数,集合中元组的可数称为集合的可数。 (与此相反,集合中的图元个数称为集合的万有引力

作为一个句柄类,"IlcIntTupleSet可以有效地管理某些集合操作。 特别是,元素可以添加到这样的集合中。 还可以使用成员函数 "IlcIntTupleSet::isIn搜索给定集合,以查看该集合是否包含给定元素。

此外,整数元组集合还可以表示定义在受约束整数变量上的约束,既可以表示定义了约束的受约束变量的允许值组合集合,也可以表示禁止值组合集合。

关于整数元组有一些约定:

如果尝试这样做,CP 优化器将抛出一个异常("IloException实例):

您不必担心内存分配问题。 如果您遵守这些约定,CP Optimizer 将为您透明地管理分配和取消分配。

另请参阅:

方法概要
public voidadd(IlcIntArray tuple) const
public voidclose() const
public IlcIntTupleSet(IlcCPEngine solver, IlcInt arity)
public IlcBoolisClosed() const
public IlcBoolisIn(IlcIntArray tuple) const
方法详细信息

IlcIntTupleSet

publicIlcIntTupleSet(IlcCPEngine solver,IlcInt arity)

该构造函数创建一组整数元组(类 "IlcIntTupleSet的实例),其历时由 "arity表示。


添加

public voidaddIlcIntArray tuple) const

该成员函数将一个由数组 "tuple表示的整数元组添加到调用集合中。 换句话说,CP 优化器尊重集合的定义,即集合中包含重复的排他性元素。 添加的元素不会被复制,也就是说,不会出现内存重复。 如果集合已经关闭,CP 优化器将抛出一个异常("IloException实例)。 如果数组的大小不等于调用集合的枚举性,CP 优化器将抛出异常("IloException实例)。


关闭

public voidclose() const

该成员函数关闭调用集合。 也就是说,集合中的所有图元都是已知的,因此可以定义和利用高效的数据结构。


isClosed

publicIlcBool isClosed() const

如果调用集合已关闭,则该成员函数返回 "IlcTrue。 否则,返回 "IlcFalse


isIn

publicIlcBool isIn(IlcIntArray tuple) const

如果元组属于调用集合,则该成员函数返回 "IlcTrue。 否则,返回 "IlcFalse。 如果集合尚未关闭,CP 优化器将抛出一个异常("IloException实例)。 如果数组的大小不等于调用集合的枚举性,CP 优化器将抛出异常("IloException实例)。