使自定义类型与基于范围的 For 循环兼容
在 C 11 中,基于范围的 for 循环提供了一种方便的迭代语法序列中的元素。要使您的自定义类型能够使用这些循环,请遵循以下准则:
创建 begin() 和 end() 成员:
定义成员函数 begin () 和 end() 在您的自定义类型中。这些函数应返回一个迭代器对象,该对象支持类型内迭代所需的操作。
在类型的命名空间中声明 begin() 和 end():
If您的自定义类型属于特定的命名空间(例如 xml),定义 begin() 和end() 可以在 xml 命名空间中,也可以在 std 命名空间中。
或者,创建自由函数:
如果您不能或不想直接修改类型,请创建自由函数begin() 和 end() 与您的类型位于同一命名空间中。请注意,这些函数必须将对您的类型的引用作为参数。
迭代器要求:
返回的迭代器对象不必是成熟的迭代器,但必须满足以下基本要求:
额外注意事项:
通过遵循这些准则,您可以使您的自定义类型能够在基于范围的 for 循环中方便地使用,从而增强代码可读性并简化迭代操作。
以上是如何使我的自定义 C 类型与基于范围的 For 循环配合使用?的详细内容。更多信息请关注PHP中文网其他相关文章!