【发布时间】:2010-11-18 17:07:06
【问题描述】:
在问题Fast and flexible iterator for abstract class 的帮助下,我为抽象类GridData 创建了一个抽象GridIterator。现在我可以使用 GridIterator 的任何具体子类来遍历 GridData 的任何具体子类。
但是,在测试过程中,我发现 virtual operator++ 和 virtual operator* 运算符成为我算法的真正瓶颈。我想知道是否有什么我可以做的来加快它。由于抽象,内联可能对我不起作用?
我也想提供一个 const 迭代器。我不确定如何使用当前的课程设计来完成这项工作。参考我最初的问题(Fast and flexible iterator for abstract class),我可以使用 const T 而不是 T 从 STL 前向迭代器创建一个 ConstGridIterator 作为子类吗?还是我必须实现每个迭代器类(GridIterator 和 baseImpl)的 const 版本?
【问题讨论】:
标签: c++ stl iterator virtual inline