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
    }
    
  • 相关阅读:
    在ASP.NET Core中使用TagHelpers
    ASP.NET Core使用Redis
    ASP.NET Core MVC中视图
    HTTP状态码
    ASP.NET Core中静态文件
    ASP.NET Core中使用依赖注入
    在ASP.NET Core中使用多个环境
    ASP.NET Core读取配置文件
    HTML+CSS解决高度塌陷和垂直重叠
    Element-UI的表格合计行的列添加操作按钮
  • 原文地址:https://www.cnblogs.com/miachel-zheng/p/8548653.html
Copyright © 2011-2022 走看看