異なるコンテナーのイテレーターの比較
C では、異なるコンテナーを扱うときにイテレーターの比較を制御する原則を理解することが重要です。 「異なるコンテナの反復子を比較することは許容されますか?」
これに答えるには、C 11 標準 (n3337) を参照します。
RandomAccessIterator は ForwardIterator の要件を継承するため、異なるコンテナからのイテレータの比較は未定義の動作になります。
LWG 問題 #446 は、この問題に具体的に対処し、提案しています。標準に対する次の修正:
「2 つの異なる範囲 r1 と r2 から取得された 2 つの反復子の値を引数として持つ比較関数または二項演算子を直接的または間接的に評価した結果は、明示的に指定されていない限り、未定義です。 "
この修正は、共通の範囲の部分範囲でない限り、異なるコンテナの反復子を比較することは未定義の動作であることを強調しています。
以上が異なるコンテナのイテレータを C で比較できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。