如何在自定义类中启用'auto loops'?

How to enable 'auto loops' in custom classes?

本文关键字:loops auto 启用 自定义      更新时间:2023-10-16

我已经编写了一个类vecMatrix,它封装在std::vector周围以提供二维存储功能。然而,尽管能够将std::vector对象中的数据作为写入循环非常方便

std::vector<float> vec;
for (auto& val: vec) { /* do stuff to val*/}

我不能用我的自定义类来做这件事。需要什么样的操作员过载才能以相同的方式对vecMatrix进行编码?:

vecMatrix<float> mat;
for (auto& val: mat) { /* do stuff to val*/}

您需要定义成员函数beginend,它们将迭代器返回到类所代表的范围(或者您可以定义将引用类作为参数的非成员。