C++ C++;11按值、参考和指针自动循环的范围
我知道如何在for循环中使用auto关键字通过值或引用来迭代这个数组C++ C++;11按值、参考和指针自动循环的范围,c++,c++11,for-loop,auto,C++,C++11,For Loop,Auto,我知道如何在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(); } } 所以我在
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();
}
}
所以我在看这个公约的第三个版本。我如何在这里使用指针?您不需要。如果你想要一个指针,要么写一个经典的for循环,要么通过引用循环并获取地址。我不推荐它,但如果你坚持使用指针
->
语法,只需创建一个a*
数组,并将其视为一个值(即在for循环的范围内执行常规的auto
)
#包括
结构A{
void fun(){std::cout fun();
}
}
指针是一种值类型。Ew,不,不要。。。Xeo从来没有说过要这么做。@LightnessRacesinOrbit我同意电子战,但只是想指出一点,以防OP坚持使用
->
语法。更新了答案,tnx。
#include <iostream>
struct A {
void fun() { std::cout << "fun \n"; };
};
int main() {
A* a[2];
// Pointer
for (auto x : a) {
x->fun();
}
}
A a[2];
for(auto& x_:a){
auto* x = &x_;
// code
}