C++11 知识点
l 利用{}进行所有容器和数据结构的就地初始化,还可以直接用于返回值,对自定义类型进行就地初始化使用initializer_list
l 通过右值引用,函数可以自由的返回大对象,同时带资源赋值更加高效,由此指针可在任何情况下退出使用(库除外)
l 全局唯一资源可封装为只可移动不可拷贝语义
l 任何非引用数据都可以成为联合体的成员
l final、override、virtual等指示关键字要经常使用
l enum变成了强类型,不可与数字隐式转换
l friend关键声明友元类时不用加class
l sizeof可以直接用于结构体成员
l 类可以就地初始化,从而节省代码
l noexcept声明本函数不抛出异常,如果抛出就会terminate
l 新增long long数据类型,该类型保证64位以上
l 通过自定义字面量,可以更高程度上接近书写语言,甚至可直接使用字面量作为函数
l using broler= int 可定义类型别名,与typedef功能类似
l 模板实例化的>>被作为终结符合法
l 使用auto做到动态类型,最大应用在定义iterator。并且使用auto修饰的函数可以将返回类型后置,可以直接在函数后定义返回类型
l hash_code是RTTI新成员
l decltype使C++终于可以支持反射等新类型的变成,且其会自动去掉cv限定符
l for可以用于返回,从而可以不用for_each
l enum class可以指定枚举的type,且为强类型
l auto_ptr被废弃,用unique_ptr、shared_ptr、weak_ptr。unique_ptr只可移动,不可拷贝;shared_ptr是引用计数,weak_ptr可指向shared_ptr的内存,但计数不变,当计数为0时,返回nullptr
l C++11定义了垃圾回收,且允许用户将特定指针不受回收
l constexpt使函数在编译时获得常量性(用于switch、类)
l 可使用tuple了
l 院子类型可直接用于并行编程
l quick_exit可以快速正常退出,而不需要析构对象
l nullptr(nullptr_t)专指空指针,不能隐式转换到其他类型,且其为一个运行时常量,有地址
l =default、 =delete可以控制类的默认生成函数
l lamba进行函数式编程,=表示传递父域所有按值传递,&表示父域所有引用传递,可用于大型函数流程的子流程整理,且按值捕获可不改动父值
l 使auto获得lamba函数的引用,可实现复杂大函数,最大好处是可在函数内重构代码
l 利用alignof判断对齐数,用alignas来重新设定对齐方向,以方便高效的响亮数据处理
l 用[[ ]]定义通用属性,应尽量多用,用于代码优化
l \uXXXX可表示16位的unicode
l 字符串前加R””表示原生字符串,可在串内格式化
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。