• C++——各版本新特性


    C++ 11

    • auto关键字
    • decltype关键字
    • nullptr字面值
    • constexpr关键字
    • for(declaration : expression)
    • Lambda表达式
    • initializer_list
    • 标准库bind函数
    • 智能指针shared_ptr,unique_ptr
    • 右值引用&&
    • STL容器std::array,std::forward_list,std::unordered_map,std::unordered_set

    C++ 14

    • 拓展了lambda表达式,更加泛型:支持auto
    • 拓展了类型推导至任意函数:C11只支持lambda返回类型的auto
    • 弃用关键字 [[deprecated]]

    C++ 17

    • 拓展了constexpr至switch if等:C++11的constexpr函数只能包含一个表达式
    • typename 嵌套
    • inline 内联变量
    • 模板参数推导
    • 元组类 std::tuple:std::pair实现两个元素的组合,它实现多个
    • 类模板std::variant表示一个类型安全的联合体。
    • 引用包装器 std::reference_wrapper
    • 变长参数模板
    • 结构化绑定(函数多值返回时用{}合成struct)
    • 非类型模板参数可传入类的静态成员
    • 在if和switch中可进行初始化
    • 初始化(如struct)对象时,可用花括号进行对其成员进行赋值
    • 简化多层命名空间的写法
    • lambda表达式可捕获*this的值,但this及其成员为只读
    • 十六进制的单精度浮点数
    • 继承与改写构造函数
    using B1::B1;//表示继承B1的构造函数
    • 当模板参数为非类型时,可用auto自动推导类型
    • 判断有没有包含某文件__has_include
    • [[fallthrough]]用于switch语句块内,表示会执行下一个case或default
    • [[nodiscard]]表示函数的返回值没有被接收,在编译时会出现警告。
    • [[maybe_unused]]即便没使用也不警告

    https://blog.csdn.net/qq811299838/article/details/90371604

    C++ 20

    • concept用于声明具有特定约束条件的模板类型
    // 声明一个数值类型的concept
    template<typename T>
    concept number = std::is_arithmetic<T>::value;
    • 范围库(Ranges Library)
    • 协程(Coroutines)
    • 模块(modules)
  • 相关阅读:
    ABB机器人 带参数例行程序
    面试题10- I:斐波那契数列(C++)
    面试题39:数组中出现次数超过一半的数字(C++)
    面试题50:第一个只出现一次的字符(C++)
    第八部分 表的基本操作
    第七部分 表中数据的基本操作
    面试题18:删除链表的节点(C++)
    面试题35:复杂链表的复制(C++)
    面试题54:二叉搜索树的第k大节点(C++)
    面试题62:圆圈中最后剩下的数字(C++)
  • 原文地址:https://www.cnblogs.com/yrm1160029237/p/14246166.html
Copyright © 2020-2023  润新知