当前位置:首页 > 编程笔记 > 正文
已解决

C++(20):自定义类型实现基于范围的for循环

来自网友在路上 173873提问 提问时间:2023-11-12 17:01:23阅读次数: 73

最佳答案 问答题库738位专家为你答疑解惑

C++自定义类型,可以通过实现begin和end作为成员函数,来支持基于范围的for循环

#include <iostream>class D{
public:int* begin(){return m_data;}int* end(){return m_data + 5;}
private:int m_data[5]{1, 2, 3, 4, 5};
};int main()
{D d;for (int i : d){std::cout << i << std::endl;}return 0;
}

运行程序输出:

1

2

3

4

5

 C++20允许将begin和end做为非成员函数实现以支持基于范围的for循环:

#include <iostream>class D{
public:int m_data[5]{1, 2, 3, 4, 5};
};int* begin(D& d)
{return d.m_data;
}
int* end(D& d)
{return d.m_data + 5;
}int main()
{D d;for (int i : d){std::cout << i << std::endl;}return 0;
}

运行程序输出:

1

2

3

4

5

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"C++(20):自定义类型实现基于范围的for循环":http://eshow365.cn/6-38255-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!