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

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). 相反,使用此模板创建的迭代器将对给定环境中的所有可提取对象起作用,无论它们是否已被明确添加到模型中。
另请参阅:
IloEnv,IloExtractable,IloModel,IloModel::Iterator
| 方法概要 | |
|---|---|
public | IloIterator(const IloEnv env, IloBool withSubClasses=IloTrue) |
public IloBool | ok() |
public void | operator++() |
| 方法详细信息 |
|---|
此模板构造函数为类 "E的实例创建一个迭代器。 当参数 "withSubClasses为 "IloTrue(默认值)时,迭代器也将作用于 "E的子类实例。 当 "withSubClasses为 "IloFalse时,迭代器只对 "E的实例有效。
示例
下面是该模板为IloNumVar 类创建迭代器的示例。
typedefIloIterator<IloNumVar> IloNumVarIterator;
voiddisplayAllVars(IloEnvenv) {
forIloNumVarIteratorit(env);it.ok(); ++it) {
IloNumVarext = *it;
cout << ext;
}
}
如果存在当前元素且迭代器指向该元素,则该成员函数返回 "IloTrue。 否则,返回 "IloFalse。
该操作符将迭代器向前推进,指向迭代中的下一个值。