for循环的新用法和auto关键字
Posted leoncumt
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了for循环的新用法和auto关键字相关的知识,希望对你有一定的参考价值。
int main(){ Int var = 10; for(int x : var){ Cout << var <<endl; } Return 0; }
for循环的另一种写法,在这里记录一下。但这里还有一点可以优化的地方,循环中的int x是一个临时变量,在每一次循环中,var都会给x重新复制,也就需要重新开辟一个空间存放var的值。如果这个临时变量存放在栈区,函数执行结束由系统回收的话,for循环的空间复杂度就是O(n)。可使用如下方式:
int main(){ Int var = 10; for(int &x : var){ Cout << var <<endl; } Return 0; }
使用引用,既每次给var重新起一个别名,它们使用的是同一块内存空间,每次不再重新申请内存空间,空间复杂度就降到了O(1)。
auto:auto关键字也是c++11新引入的关键字,它的作用是:自动推断出变量的类型,不过还没发现最适用于什么地方,以后发现了,再回来完善吧。所以,上面的程序还可以改写成为:
int main(){ Int var = 10; for(auto &x : var){ Cout << var <<endl; } Return 0; }
以上是关于for循环的新用法和auto关键字的主要内容,如果未能解决你的问题,请参考以下文章
喵呜:C++基础系列:auto关键字(C++11)基于范围的for循环(C++11)指针空值nullptr(C++11)
喵呜:C++基础系列:auto关键字(C++11)基于范围的for循环(C++11)指针空值nullptr(C++11)