インデックス付き反復のイテレータの減算に対する std:: distance の利点
次のシナリオを考えてみましょう: ベクトルを反復処理し、次のインデックスが必要です。イテレータが指す現在の要素。この目的で使用される 2 つの一般的なメソッドは次のとおりです:
どちらのアプローチでも正しい結果が得られますが、いくつかの点で異なります。
長所と短所 - vec.begin():
の長所と短所std:: distance(vec.begin(), it):
ベクトルが反復中に変更されないことが期待されるシナリオでは、それは - vec.begin()簡単にするために使用できます。ただし、ベクトルが変更される可能性がある場合は、正確性を確保し、パフォーマンスの問題を回避するために std:: distance(vec.begin(), it) を使用することをお勧めします。
これはコンテナイテレータの一般名 (例: std::container_type::iterator it;) であり、その使用法は提供されているガイドラインに従う必要があります。
以上がインデックス付き反復には `std:: distance` または反復子の減算を使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。