自訂基於範圍的For 迴圈的類型
要讓自訂類型與基於範圍的for 迴圈一起使用,您可以指定begin( ) 和end() 方法適合您的類型。這些方法應傳回迭代器,使循環能夠迭代類型的元素。
命名空間注意事項
如果您的自訂類型屬於命名空間,則應該定義該命名空間內的 begin() 和 end() 。例如,如果您的類型是 xml::my_type,則應定義 xml::begin() 和 xml::end() 以使其可供基於範圍的 for 迴圈存取。
要求對於begin() 和end()
您定義的begin() 和end() 方法必須滿足以下條件要求:
它們必須為基於範圍的for 循環正常運作提供必要的運算子和功能,包括以下內容:
實作begin() 和end 的兩個選項()
有兩種主要方法來實作begin() 和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中文網其他相關文章!