C++11(2)

news/2025/1/12 9:45:59/

1.右值引用中的移动构造函数

对于右值的认识和划分,我们可以把右值分为纯右值(内置类型),将亡值(自定义类型),而对于左值和纯右值的构造,一般来说都是进行的拷贝构造.

就拿这个来说如果传的是左值,和纯右值,那么直接揍上面的那个函数进行拷贝构造,如果传的是一个将亡值,那就走下面的移动构造函数.

1.将亡值

在C++中,将亡值是C++11标准中引入的一个概念,它是右值引用的一种特殊形式。将亡值表示的是即将被销毁或者不再使用的对象,这些对象可以被“窃取”资源,例如它们的非静态成员或拥有的资源。

将亡值具有以下特点:

  1. 临时对象:通常,将亡值是临时的、没有名字的对象(匿名对象),例如函数返回的临时对象。

  2. 资源可以被移动:将亡值通常用于移动语义,允许资源的所有权从一个对象转移到另一个对象,从而避免不必要的复制。

  3. 特殊右值:将亡值是一种特殊的右值,它可以通过右值引用来绑定。

如果是遇到了这种将亡值,就说明出了当前的作用域他就会被自动销毁,如果进行深拷贝的构造函数的话效率可能就会降低,因此,我们就会引入一个移动构造的概念,允许我们进行高效的转移他们,而不是进行复制他们.

对于移动构造和移动复赋值,我们还需要明白的一个点就是,右值引用的本身就是左值,而这样的意义,就是为了移动构造等语法逻辑的自洽,而只有右值引用本身处理成左值,才能实现移动构造

2.万能引用

实参传左值,那就推导成左值引用,如果实参传递的是右值,那就推成右值引用

3.Lambda

当我们想比较两个类里面的某个值的时候,比如说商品里面的价格,我们通常都会用到仿函数来进行比较.

but

主播主播,你的仿函数确实很强势,但还是太吃操作了,有没有什么更简单又强势的写法?

有的,兄弟,有的,这么好的写法当然不止一种,我这还有一种lambda表达式.

Lambda具体怎么写呢?

比较大于的值

比较小于值


http://www.ppmy.cn/news/1562464.html

相关文章

手机租赁系统开发解决方案与市场趋势分析

内容概要 手机租赁系统开发正如一场技术与商业的双重舞会,双方时而相互辉映,时而却也是一场较量。在这片快速变幻的市场中,了解当前的技术实现与挑战尤为重要。例如,系统架构的选择、数据安全性以及用户体验设计都可能成为企业发…

Spring Boot开发——结合Redis实现接口防止重复提交

文章目录 一、准备工作1、引入依赖2、配置Redis 二、实现代码1、创建Redis服务类2、创建AOP切面类3、自定义注解4、处理异常5、使用注解 三、测试验证1、启动Redis服务2、启动Spring Boot应用3、模拟重复提交 在Web开发中,防止用户重复提交表单是一个常见的需求。例…

Hadoop高可用集群搭建

在三台虚拟机上搭建具有两个NameNode节点和两个ResourceManager节点的Hadoop高可用集群。步骤如下: 1.在3台虚拟机中的/export/servers目录中创建目录hadoop-HA,用于存放部署Hadoop高可用集群的Hadoop安装目录,命令如下: 2.安装H…

JavaWeb—Servlet详解

前言: 本章节主要学习Servlet基础知识点,收录于JavaWeb系列,该系列主要讲解Servlet、JSP、Filter过滤器、Session、分层开发概念等知识点,欢迎童鞋们互相交流。觉得不错可以三连订阅喔。 目标: 一、概念 二、入门程…

【灵码助力安全2】——利用通义灵码辅助复现未公开漏洞的实践

前言 暨上一篇【灵码助力安全1】——利用通义灵码辅助快速代码审计的最佳实践之后,这第二篇主要是想分享一下通义灵码在复现未公开漏洞方面的应用,当然,前提也是必须得有相应的源码。 有的时候,由于安全人员水平的限制和时间、…

Redis 三大问题:缓存穿透、缓存击穿、缓存雪崩

Redis 作为高性能的内存数据库,广泛应用于缓存场景。然而,在实际使用中,可能会遇到三大经典问题:缓存穿透、缓存击穿 和 缓存雪崩。这些问题如果不加以解决,可能会导致系统性能下降甚至崩溃。 1. 缓存穿透 问题描述 …

ChatGPT 网络配置问题解决方案

随着人工智能技术的飞速发展,基于GPT架构的聊天机器人,如ChatGPT,已经在多个领域获得了广泛应用。其强大的自然语言处理能力为用户带来了便捷的交互体验。然而,在实际使用过程中,尤其是在部署和访问时,用户…

自动化之数据库:docker部署mongo,为下一步的使用打下基础

以下是一个详细的Docker Compose配置示例,用于设置一个包含三个节点的MongoDB副本集,并确保安全性(使用账号密码进行认证)。所有节点都将设置在同一个Docker网络( py-mongo )下,以便于未来的扩…