| 概述 | 组 | 树 | 图形 | 不推荐 | 索引 | 概念 |

整数元组是整数值的有序集合。 一组整数元组由 "IlcIntTupleSet实例表示。 也就是说,整数元组集合的元素都是整数元组。 元组中值的个数称为元组的可数,集合中元组的可数称为集合的可数。 (与此相反,集合中的图元个数称为集合的万有引力)
作为一个句柄类,"IlcIntTupleSet可以有效地管理某些集合操作。 特别是,元素可以添加到这样的集合中。 还可以使用成员函数 "IlcIntTupleSet::isIn搜索给定集合,以查看该集合是否包含给定元素。
此外,整数元组集合还可以表示定义在受约束整数变量上的约束,既可以表示定义了约束的受约束变量的允许值组合集合,也可以表示禁止值组合集合。
关于整数元组有一些约定:
IlcIntTupleSet::add将整数元组添加到集合中。IlcIntTupleSet::close 关闭集合。 这种操作--关闭集合--提高了集合上某些其他操作的性能。如果尝试这样做,CP 优化器将抛出一个异常("IloException实例):
您不必担心内存分配问题。 如果您遵守这些约定,CP Optimizer 将为您透明地管理分配和取消分配。
另请参阅:
| 方法概要 | |
|---|---|
public void | add(IlcIntArray tuple) const |
public void | close() const |
public | IlcIntTupleSet(IlcCPEngine solver, IlcInt arity) |
public IlcBool | isClosed() const |
public IlcBool | isIn(IlcIntArray tuple) const |
| 方法详细信息 |
|---|
该构造函数创建一组整数元组(类 "IlcIntTupleSet的实例),其历时由 "arity表示。
该成员函数将一个由数组 "tuple表示的整数元组添加到调用集合中。 换句话说,CP 优化器尊重集合的定义,即集合中包含不重复的排他性元素。 添加的元素不会被复制,也就是说,不会出现内存重复。 如果集合已经关闭,CP 优化器将抛出一个异常("IloException实例)。 如果数组的大小不等于调用集合的枚举性,CP 优化器将抛出异常("IloException实例)。
该成员函数关闭调用集合。 也就是说,集合中的所有图元都是已知的,因此可以定义和利用高效的数据结构。
如果调用集合已关闭,则该成员函数返回 "IlcTrue。 否则,返回 "IlcFalse。
如果元组属于调用集合,则该成员函数返回 "IlcTrue。 否则,返回 "IlcFalse。 如果集合尚未关闭,CP 优化器将抛出一个异常("IloException实例)。 如果数组的大小不等于调用集合的枚举性,CP 优化器将抛出异常("IloException实例)。