基于C ++ 11范围的自动按值,引用和指针循环 [英] C++11 range based auto for loop by value, reference, and pointer
本文介绍了基于C ++ 11范围的自动按值,引用和指针循环的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
struct A {
void fun(){};
};
int main(){
A a [2];
// Value
for(auto x:a){
x.fun();
$ b $ // Ref
for(auto& x:a){
x.fun();
$ b //指针
//用于(...){
x-> fun();
$ b所以我正在寻找这个约定的第三个版本。如何在这里使用指针?
解决方案
A a [2]; (auto& x_:a){
auto * x =& x_;
;
// code
}
I know how to use auto keyword in for loop to iterate this array either by value or reference.
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();
}
}
So I am looking third version of this convention. How do I use pointer here?
解决方案 A a[2];
for(auto& x_:a){
auto* x = &x_;
// code
}
这篇关于基于C ++ 11范围的自动按值,引用和指针循环的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文