笔记20150920

来源:互联网 发布:小意思tpo for mac 编辑:程序博客网 时间:2024/04/30 15:11
C++11语言新特性1.Template 表达式内的空格vector<list<int> >//OK in each C++ versionvector<list<int>>//Ok since C++112.C++11 允许你使用nullptr 取代0或者null,用来表示一个pointer(指针)指向所谓的no value.void f(int);void f(void*);f(0);//call f(int)f(NULL);//call f(int) if NULL is 0,ambiguous otherwisef(nullptr)//call f(void*)nullptr 是一个新关键字,它被自动转换为各种pointer类型,但不会被转换为任何整型类型,它拥有类型std::nullptr,定义于<cstddef>3.auto 自动类型推导vector<int> vecRoadId;auto iter = vecRoadId.begin(); //等价于 vector<int>::iterator iter = vecRoadId.begin()4.一致性初始化(Uniform Initialization)与初值列(InitializerList)C++11引入了“一致性初始化”概念,意思是面对任何初始化动作,你可以使用相同语法,也就是使用大括号。int values[] {1,2,3};std::vector<int> v {1,2,3,4,5};int i;//j has undefined value ;int i{};//j is initialized by 0;int* p;//p has undefined value ;int* p{}; //p is initialized by nullptr; int x1(5.3);//OKint x2 = 5.3;//OKint x3{5.0};//ERRORint x4 = {5.3}//ERRORchar c1{7};//OK char c2{99999}//ERROR5.Range-Based for 循环for(decl : coll){statement}for(int i : {1,2,3,4,5,6}){std::cout<<i<<std::endl;}std::vector<vector> vec;for(auto& elem:vec){elem *= 3;}6 关键字 noexcept 用来指明某个函数无法或者不打算抛出异常。

0 0