範囲ベースの For ループの型のカスタマイズ
カスタム型を範囲ベースの for ループで機能させるには、begin( ) および end() メソッドをタイプに応じて選択します。これらのメソッドは、ループが型の要素を反復処理できるようにする反復子を返す必要があります。
名前空間に関する考慮事項
カスタム型が名前空間に属している場合は、次のことを定義する必要があります。その名前空間内の begin() と end() です。たとえば、型が xml::my_type の場合、xml::begin() と xml::end() を定義して、範囲ベースの for ループにアクセスできるようにする必要があります。
要件begin() と end() の場合
定義する begin() メソッドと end() メソッドは次の条件を満たす必要があります。要件:
範囲ベースの for ループが適切に機能するために必要な演算子と機能を提供する必要があります。以下を含みます:
begin() と end を実装するための 2 つのオプション()
begin() を実装するには、主に 2 つのアプローチがあります。カスタム型の end() :
例:
次の例を考えてみましょう:
struct my_type { int data[5]; // Define begin() and end() as member functions int* begin() { return &data[0]; } int* end() { return &data[5]; } };
これらのメンバー関数を定義することにより、my_type のインスタンスは次のようになります。範囲ベースの for ループを使用して反復されます:
my_type mt; for (int& value : mt) { // Do something with each value in mt }
以上がカスタム型を C 範囲ベースの For ループで動作させるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。