
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.9.2 使用方式
要想对用户自定义类型使用基于range的for循环,需要执行以下操作:
❍ 为类型创建可变迭代器和常量迭代器,必须实现:
• operator++(包含前缀版本和后缀版本)——用于递增迭代器;
• operator*——用于解引用迭代器并访问迭代器所指向的实际元素;
• operator!=——用于与另一个迭代器进行比较。
❍ 为类型提供自由函数begin()和end()。
基于前面的简单range示例,我们需要提供以下内容:
❍ 以下迭代器类的最简洁实现:


❍ 可变迭代器和常量迭代器的模板别名:

❍ 自由函数begin()和end()返回相应的begin和end迭代器,对两个模板别名都有重载:

