Avec l'aide de la question Fast and flexible iterator for abstract class J'ai créé un GridIterator abstrait pour une classe abstraite GridData. Maintenant, je suis capable d'utiliser n'importe quelle sous-classe concrète de GridIterator pour parcourir n'importe quelle sous-classe concrète de GridData.Comment accélérer mon cours Iterator orienté objet?
Cependant, lors des tests, j'ai découvert que les opérateurs opérateur virtuel ++ et opérateur virtuel * devenaient de véritables goulots d'étranglement pour mes algorithmes. Je me demande s'il y a quelque chose que je peux faire pour l'accélérer. En raison de l'abstraction, inlining ne fonctionnera probablement pas pour moi? Je voudrais également fournir un Istator de const. Je ne suis pas sûr de savoir comment faire ce travail avec la conception de classe actuelle. En référence à ma question initiale (Fast and flexible iterator for abstract class), puis-je simplement créer un ConstGridIterator en tant que sous-classe à partir d'un itérateur avant STL avec const T au lieu de T? Ou dois-je implémenter une version const de chaque classe d'itérateur (GridIterator et baseImpl)?