zoukankan      html  css  js  c++  java
  • C++ 11 实用特性总结

    auto

    C++11新引入的auto是一个十分好用的特性,它的用途主要是自动类型推断和返回值占位。

    1. 自动类型推断
      auto可以从表达式中推断出“返回值类型”,这里一定要有一个具体的表达式,然后根据表达式计算出结果,将结果返回给auto类型的变量。
    int main(){
        auto a;   //错误,无法推断出a的类型
    
        auto a=10; //正确,可以推断出a的类型(这里有一个疑问,a的类型究竟是int还是long long?难道它能自动扩展类型吗?目前我还没测试,感觉应该是编译器在编译的时候自动确定a的类型的,不然这岂不成了一个bug?)
    }
    

    auto的自动类型推断有两个显著优点,其一是可以省去思考变量类型,程序员可以直接将变量定义为auto类型。其二是可以简化过长的类型,例子如下所示。

    int main(){
        map<int, map<int,int> > map_;  
        map<int, map<int,int>>::const_iterator itr1 = map_.begin();  
        const auto itr2 = map_.begin();
      
        auto ptr = []()  
        {  
            std::cout << "hello world" << std::endl;  
        };  
    }
    
    1. 返回值占位
      可以将函数的返回值类型设置为auto,如下所示。
    int main{
        template <typename T1, typename T2>  
        auto compose(T1 t1, T2 t2) -> decltype(t1 + t2)  
        {  
           return t1+t2;  
        }  
        auto v = compose(2, 3.14); // v's type is double
    }
    
  • 相关阅读:
    C语言中可变函数参数变量的实现
    Oracle电话面试
    JS和C#方法相互调用
    asp.net 页面从初始化到卸载事件顺序
    解决.NET CF 3.5 Bitmap(Stream)未处理异常问题
    sql2008新增时间类数据类型学习
    c#和Javascript操作同一json对象
    被研究生了
    分形
    跑钱
  • 原文地址:https://www.cnblogs.com/miachel-zheng/p/8548653.html
Copyright © 2011-2022 走看看