範囲ベースの For ループと互換性のあるカスタム型を作成する
C 11 では、範囲ベースの for ループにより反復処理に便利な構文が提供されます。シーケンス内の要素。カスタム型がこれらのループで動作できるようにするには、次のガイドラインに従ってください:
begin() と end() の作成 メンバー:
メンバー関数の定義 beginカスタムタイプの () と end()。これらの関数は、型内の反復に必要な操作をサポートする反復子オブジェクトを返す必要があります。
型の名前空間で begin() と end() を宣言します。
Ifカスタムタイプは特定の名前空間 (xml など) に属し、begin() を定義し、 xml 名前空間または std 名前空間の end()。
または、無料関数を作成します。
型を直接変更できない、または変更したくない場合は、無料の関数を作成してくださいbegin() と end() は、型と同じ名前空間にあります。これらの関数は引数として型への参照を取る必要があることに注意してください。
イテレータの要件:
返されるイテレータ オブジェクトは完全なイテレータである必要はありませんが、次の必須要件を満たす必要があります:
追加考慮事項:
以上がカスタム C 型を範囲ベースの For ループで動作させるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。