私は、双方向イテレータの要件に準拠したカスタムイテレータクラスを用意していますが(ランダムアクセスではありません)しかし、2つのイテレータの距離は一定の時間内に見つけることもできます。概念的には、it2 - it1
は効率的ですが、it += n
(これらの演算子オーバーロードはどちらも実際に実装されていません)です。std :: distanceなどのstd関数をオーバーロードするのは合理的ですか?
std::distance()
をオーバーロードして、標準ライブラリアルゴリズムがこのイテレータで効率的に距離を計算できるようにするのは妥当ですか?
std
名前空間のものの改ざんの妥当性について、矛盾する情報が見つかりました。名前空間の使用に関して
オーバーロード?いいえ、関数テンプレートを完全に特殊化しますか?うまくいくはずです。 – StoryTeller
@StoryTellerありがとうございます。あなたが回答を投稿した場合、私はそれを受け入れます。 – Szabolcs
私はしますが、答えに引用符を付したいと思います。 – StoryTeller