跳至主内容
框架 无框架

类IloIterator<>

定义文件: ilconcert/iloiterator.h
IloIterator<>的地图 IloIterator<>IloIterator<>
为一类可提取对象创建迭代器的模板。

This template creates iterators for a given class of extractable objects (denoted by E in the template) within an instance of IloEnv.

默认情况下,以这种方式创建的迭代器将遍历 "E及其子类的实例。 通过在迭代器的构造函数中将参数 "withSubClasses设置为 "IloFalse,可以防止迭代器遍历 E 的子类实例(也就是说,可以限制迭代器的作用)。

在以这种方式创建的迭代器工作时,不得在它工作的 "IloEnv实例中创建或销毁任何可提取对象。 换句话说,以这种方式创建的迭代器只能在稳定的环境中运行。

使用此模板创建的迭代器与 "IloModel::Iterator实例不同。 An instance of IloModel::Iterator works only on extractable objects (instances of IloExtractable or its subclasses) that have explicitly been added to a model (an instance of IloModel). 相反,使用此模板创建的迭代器将对给定环境中的所有可提取对象起作用,无论它们是否已被明确添加到模型中。

另请参阅:

方法概要
public IloIterator(const IloEnv env, IloBool withSubClasses=IloTrue)
public IloBoolok()
public voidoperator++()
方法详细信息

IloIterator

public 'IloIterator(const 'IloEnv'环境, 'IloBool'子类=IloTrue)

此模板构造函数为类 "E的实例创建一个迭代器。 当参数 "withSubClasses为 "IloTrue(默认值)时,迭代器也将作用于 "E的子类实例。 当 "withSubClasses为 "IloFalse时,迭代器只对 "E的实例有效。

示例

下面是该模板为IloNumVar 类创建迭代器的示例。

   typedefIloIterator<IloNumVar> IloNumVarIterator;

   voiddisplayAllVars(IloEnvenv) {
     forIloNumVarIteratorit(env);it.ok(); ++it) {
       IloNumVarext = *it;
       cout << ext;
     }
   }
 

确定

publicIloBool ok()

如果存在当前元素且迭代器指向该元素,则该成员函数返回 "IloTrue。 否则,返回 "IloFalse


运算符++

public voidoperator++()

该操作符将迭代器向前推进,指向迭代中的下一个值。