zoukankan      html  css  js  c++  java
  • 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;  
    }
  • 相关阅读:
    js··事件捕捉
    js中的Call()和apply()
    什么是变量提升?
    什么是作用域? 什么是作用域链?
    什么是原型链?
    js中this是什么?
    Js高级 事件冒泡
    Js高级 事件 对象
    Js高级 部分内容 面向对象
    工作期间的策划案总结(1)
  • 原文地址:https://www.cnblogs.com/leoncumt/p/10350857.html
Copyright © 2011-2022 走看看