• C++11的内容介绍


    C++11的内容介绍

    初始化

    {}统一进行初始化。可以进行数组初始化,变量初始化,类成员,容器初始化,可以格式化函数初始化。基本上可以使用()东西差不多相同。

    容器的赋值(包括初始化)都是通过这一个类型进行实现相关的内容。

    int a ={10};
    int b{10};
    int c[]={1,2,34,54};
    int d[]{1,2,3};
    int e[10]{ 0 };
      vector{1,2,343,54,6};//基本上所有的容器都可以使用这个东西
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    声明

    auto自动推导变量计算之后的相应的类型。

    int a = 1;
    int b = 1;
    auto c = a + b;
    
    • 1
    • 2
    • 3

    直接获取类型变量的类型(函数的返回值也可以作为类型进行计算,但是全缺省的函数不会执行也不会返回值),使用typeid。直接表现

    #include
    
    int a = 10;
    
    cout << typeid(a).name() <
    • 1
    • 2
    • 3
    • 4
    • 5

    关键字decltype将变量的类型声明为表达式指定的类型,但是不会进行内容的初始化需要直接进行初始化。这里将p类型命名为duoble类型。

    	int a = 10;
      duoble b = 10.1;
    	decltype(a + b)p;
    
    • 1
    • 2
    • 3

    新容器

    最好使用的容器unordered_set,unordered_map(这个之前介绍过)

    forward_list单项链表容器,进行相关的操作,与其他容器的使用规则基本上相同。

    引用

    现在有引用的不同位置信息。左值引用和右值引用

    左值引用

    就是之前的进行引用,引用a的地址。

    int a = 10;
    int *b = &a;
    
    • 1
    • 2

    上面这个就是左值引用,这里对于a的引用。

    右值引用

    	int a = 10;
    	int &&b = a;
    
    • 1
    • 2

    数值10被右值引用之后,会开辟一个独立的空间储存10。a与b分别执行这一个空间。而且右值不可以进行引用。

    在这里插入图片描述

    使用move进行移动右值引用之后可以被引用了,并且a的资源被放置为空。

    int &b = std::move(a);
    
    • 1

    这个被使用在函数返回值的过程之中,解决出现拷贝搞砸的问题,用来节省空间。

    最开始的时候c98标准开始直接返回的过程增加一个拷贝构造,c++11使用右值引用进行改造,去掉拷贝构造这一个过程。

    在这里插入图片描述

    使用右值引用可以解决这个问题,去掉拷贝构造这一个部分。
    在这里插入图片描述

    总结STL容器在c++11都支持移动构造与赋值。

    完美转发

    因为只要使用过之后,无论是左右值,都变成左值。但是我们需要右值的这个情况所以需要完美转发这个东西。

    但是引用类型的唯一作用就是限制了接收的类型,后续使用中都退化成了左值。

    可以使用int && x,进行值的接受,而且相应的值没有改变(性质不会改变)!通常用在函数接受的过程之中(函数参数过程中),让值不会被退化成为左值。

    可变模版参数

    在这里插入图片描述

    可以使用递归进行东西的输出,…省略参数。

    args有多个参数,但是不知道有多少的个数字可以使用这个方法,进行数据的处理等相关的操作!

  • 相关阅读:
    分析几道关于死锁的真题
    全面解析各类营养物质在炎症中的作用
    【数据结构C/C++】稀疏矩阵的压缩
    【project 】软件使用
    使用LLama和ChatGPT为多聊天后端构建微服务
    Linux线程信号量
    js防抖、节流以及他们的应用场景
    Java版分布式微服务云开发架构 Spring Cloud+Spring Boot+Mybatis 电子招标采购系统功能清单
    CVPR2022 | MPViT: Multi-Path Vision Transformer for Dense Prediction
    【JavaEE进阶系列 | 从小白到工程师】Calendar类的常用方法使用与创建对象
  • 原文地址:https://blog.csdn.net/asibble/article/details/127662630