• 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
    }
    
  • 相关阅读:
    Bootstrap 可视化布局--拖拽后弹窗进行编辑
    Missing letters
    DNA Pairing
    Pig Latin
    Search and Replace
    Where art thou
    Roman Numeral Converter
    Diff Two Arrays
    Sum All Numbers in a Range
    Caesars Cipher
  • 原文地址:https://www.cnblogs.com/miachel-zheng/p/8548653.html
Copyright © 2020-2023  润新知