質問の助けを借りてFast and flexible iterator for abstract class抽象クラスGridData用の抽象的なGridIteratorを作成しました。これで、GridIteratorの具体的なサブクラスを使用して、GridDataの具体的なサブクラスを反復処理することができました。オブジェクト指向のIteratorクラスを高速化するにはどうすればいいですか?
しかし、テストでは、仮想演算子++と仮想演算子*演算子が私のアルゴリズムの実際のボトルネックになっていることがわかりました。私はそれをスピードアップするために何かができるかどうか疑問に思っています。抽象化のため、インライン展開はおそらく私にとってはうまくいかないでしょうか?
私はconstイテレータも提供したいと思います。私は現在のクラス設計でこの作業をどうやって行うのか分かりません。私のオリジナルの質問(Fast and flexible iterator for abstract class)を参照すると、Tの代わりにconst Tを持つSTL順方向イテレータからConstGridIteratorをサブクラスとして作成できますか?または、すべてのイテレータクラス(GridIteratorおよびbaseImpl)のconstバージョンを実装する必要がありますか?