![](/img/trans.png)
[英]Using reference to pointer as a sequence in C++11 range for loop
[英]C++11 range based auto for loop by value, reference, and pointer
我知道如何在for循环中使用auto关键字来按值或引用迭代这个数组。
struct A {
void fun() {};
};
int main() {
A a[2];
// Value
for (auto x : a) {
x.fun();
}
// Ref
for (auto& x : a) {
x.fun();
}
// Pointer
//for (...) {
x->fun();
}
}
所以我正在寻找这个约定的第三个版本。 我如何在这里使用指针?
A a[2];
for(auto& x_:a){
auto* x = &x_;
// code
}
你没有。 如果你想要一个指针,可以写一个经典的for循环,或者通过引用循环并获取地址。
我不推荐它,但如果你坚持使用指针->
语法,只需创建一个A*
数组并将其视为一个值(即在range-for循环中做常规auto
)
#include <iostream>
struct A {
void fun() { std::cout << "fun \n"; };
};
int main() {
A* a[2];
// Pointer
for (auto x : a) {
x->fun();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.