c++11语言新特性

  

  1. 模板的闭符之间不需要空格:vector<list<int> > 等同于 vector<list<int>>
  2. nullptr取代0或者NULL
  3. 以auto完成类型自动推导
  4. 一致性初始化与初值列;使用大括号进行初始化动作,如: int values[]{1,2,3}  vector<int> v{1,2,3};初值列如:int j{}--j is initialized by 0; int*p{}--q is initialized by nullptr;
  5. range-based for ; 如 for(auto i: list/range/array/collection)
  6. move/rvalue reference
  7. 新式的字符串字面常量。Raw string literal--R"\\\n"; 编码的(Encoded)string literal--u8"lsdkf" u“dd” U"kk" L"hello"
  8. noexcept--给编译器更大的优化空间。然而,并不是加上noexcept就能提高效率,步子迈大了也容易扯着蛋。防止异常扩散
  9. constexpr--让表达式核定于编译期
  10. 崭新的template特性---可以接受个数不定之template实参--variadic template;支持Alias Template/template typedef 通过using;function template可拥有默认的template实参
    template<typename T,typename... Types>
    void print(const T& first,const Types&... args)
    {
        cout<<first<<endl;
        print(...args);
    }
  11. lambda
  12. decltype--可以让编译器找出表达式类型
  13. 新的函数声明语法


    template<typename T1,typename T2>
    decltype(x+y) add(T1 x,T2 y);

    template<typename T1,typename T2>
    auto add(T1 x,T2 y) -> decltype(x+y);

发布了51 篇原创文章 · 获赞 2 · 访问量 860

猜你喜欢

转载自blog.csdn.net/YRC333/article/details/97148468
今日推荐