【10】c++11新特性 —>move移动语义(1)

news2024/10/1 5:40:26

移动语义(Move Semantics)是C++11引入的一个重要特性,它允许在不复制数据的情况下将资源(如内存、指针等)从一个对象转移到另一个对象,从而可以提高程序的性能。
在C++11添加了右值引用,并且不能使用左值初始化右值引用,如果想要使用左值初始化一个右值引用需要借助std::move()函数,使用std::move方法可以将左值转换为右值。使用这个函数并不能移动任何东西,而是和移动构造函数一样都具有移动语义,将对象的状态或者所有权从一个对象转移到另一个对象,只是转移,没有内存拷贝。

#include<iostream>
#include<list>
#include<string>
using namespace std;

class Test
{
public:
    Test() {}
};

int main()
{
    list<string> ls;
    ls.push_back("hello");
    ls.push_back("world");

    list<string> ls1 = ls;        // 需要拷贝, 效率低
    list<string> ls2 = move(ls);

    cout << "************_ls_**************" << endl;
    for (auto& it : ls)
    {
        cout << it << endl;
    }
    cout << "*************_ls1_*************" << endl;
    for (auto& it : ls1)
    {
        cout << it << endl;
    }
    cout << "*************_ls2_*************" << endl;
    for (auto& it : ls2)
    {
        cout << it << endl;
    }
    return 0;
}

在这里插入图片描述
list ls1 = ls; // 需要拷贝, 效率低
list ls2 = move(ls); //效率高,但是执行完成后,ls将为空

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1180693.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Binder 原理

1. Linux 和 Binder 的 IPC 通信原理 进程通信的简单模型如下所示&#xff1a; 1.1 内核空间&#xff08;Kernel space&#xff09;和用户空间&#xff08;User space&#xff09; 操作系统从逻辑上将虚拟空间划分为用户空间和内核空间。Linux 操作系统将较高的 1GB 供内核使…

369-HI-R-M-0-0-0-E 数字化转型如何改变DCS和SCADA

369-HI-R-M-0-0-0-E 数字化转型如何改变DCS和SCADA 高瞻远瞩的过程制造商正在投资数字化转型&#xff0c;而DCS和SCADA最终将成为这些努力的一部分。因此&#xff0c;它们与所有其他流程制造技术一起发展。DCS和SCADA系统的变化符合自动化金字塔正在进行的转变&#xff0c;它也…

助力工业数字化!TDengine 与恩菲 MIM+ 工业互联网平台实现兼容性互认

在云计算、物联网、5G等新兴技术快速发展的当下&#xff0c;制造企业想要运用新兴技术实现数字化转型&#xff0c;工业互联网平台的应用和打造是非常关键的转型要素。在工业互联网平台的发展中&#xff0c;数据处理上存在的问题一直都是令企业所头疼的&#xff0c;越来越多的案…

一对一交友App开发指南:从概念到上线的完整路线图

作为现代社交方式的重要组成部分&#xff0c;一对一交友App在满足人们社交需求方面扮演着重要角色。本文将为您呈现一对一交友App的开发指南&#xff0c;从概念到上线的完整路线图&#xff0c;帮助您构建一款成功的交友平台。 概念阶段 在一对一交友App开发的初期&#xff0c…

电子电表和智能电表有什么区别?

随着科技的不断发展&#xff0c;电力计量设备也在不断更新换代。电子电表和智能电表作为两种常见的电力计量设备&#xff0c;虽然在功能和性能上有一定的相似性&#xff0c;但在原理、应用场景等方面存在显著差异。接下来&#xff0c;小编将为大家详细解析电子电表和智能电表的…

linux地址空间

地址空间 内存空间示意图虚拟地址空间虚拟地址进程地址空间生命周期图解为什么要有地址空间呢&#xff1f; 小结 内存空间示意图 进程是在内存中运行的&#xff0c;为了便于管理&#xff0c;不同的数据会存储在不同的区域&#xff0c;因此内存就被分为几部分&#xff0c;如下图…

Java中访问修饰符

类和类之间的关系有如下几种: 以Hero为例自身&#xff1a;指的是Hero自己同包子类&#xff1a;ADHero这个类是Hero的子类&#xff0c;并且和Hero处于同一个包下不同包子类&#xff1a;Support这个类是Hero的子类&#xff0c;但是在另一个包下同包类&#xff1a; GiantDragon 这…

相关性分析——Pearson相关系数+热力图(附data和Python完整代码)

相关性分析&#xff1a;指对两个或多个具有相关性的变量元素进行分析 1.散点图和相关性热力图 2.相关系数 相关系数最早是由统计学家卡尔 皮尔逊设计的统计指标&#xff0c;是研究变量之间线性相关承兑的值&#xff0c;一般用字母 r 表示。 2.1Pearson相关系数 Pearson相关…

蓝桥杯算法竞赛系列第九章·巧解哈希题,用这3种数据类型足矣

你好&#xff0c;我是安然无虞。 文章目录 哈希基础概念哈希相关题目 有效的字母异位词 赎金信 字母异位词分组 两个数组的交集 快乐数 两数之和 四数相加 II 最长连续序列 查找共用字符 同构字符串 单词规律 字节跳动面试&#xff1a;缺失的第一个正数 哈喽哈喽&#xff0c;好…

vr航空博物馆综合展馆趣味VR科普体验

第十期广州科普开放日 10月28日周六上午九点半&#xff0c;广州卓远VR科普基地再次迎来一批前来体验的亲子家庭&#xff0c;陆续到达的市民朋友让整个基地都热闹了起来&#xff0c;他们在这里开启了一场别开生面的VR科普体验。 一期一会&#xff0c;趣味VR科普 10月广州科普开放…

Pinia 是什么?Redux、Vuex、Pinia 的区别?

结论先行&#xff1a; Pinia 是 Vue 官方团队开发的一个全新状态管理库。与 Redux、Vuex 相同&#xff0c;核心都是解决组件间的通信和数据的共享问题。 Pinia 和 Vuex 类似&#xff0c;但使用起来更加简单和直观。因为 Pinia 基于 Vue3 的 Composition 组合式 API 风格&…

【k8s】数据存储

一、数据存储的概念 pod的生命周期可能很短&#xff0c;会被频繁地创建和销毁。那么容器在销毁时&#xff0c;保存在容器中的数据也会被清除。这种结果对用户来说&#xff0c;在某些情况下是不乐意看到的。为了持久化保存容器的数据&#xff0c;kubernetes引入了Volume的概念。…

【Linux】 OpenSSH_9.3p2 升级到 OpenSSH_9.4p1(亲测无问题,建议收藏)

&#x1f468;‍&#x1f393;博主简介 &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01; &#x1f40b; 希望大家多多支…

异常处理流程

1.什么是异常源&#xff1f; 引发处理器进入对应的异常模式 2.异常源和异常模式的对应关系 1.五种异常模式&#xff0c;七种异常源 &#xff1b; 2.根据不同的异常源&#xff0c;引发处理器进入不同的异常模式&#xff0c;执行异常处理函数 3.异常源具有优先级&#xff0c;复…

PLC常用的几种编程语言

PLC的软件编程语言与一般计算机语言相比&#xff0c;具有明显的特点&#xff0c;它既不同于高级语言&#xff0c;也不同于一般的汇编语言&#xff0c;它既要满足易于编写又要满足易于调试的要求。 早期的PLC仅支持梯形图编程语言和指令表编程语言&#xff0c;现根据国际电工委员…

log4j CVE-2021-44228 RCE漏洞复现

一、漏洞特征 Apache Log4j 是 Apache 的一个开源项目&#xff0c;Apache Log4j2是一个基于Java的日志记录工具。该工具重写了Log4j框架&#xff0c;并且引入了大量丰富的特性。我们可以控制日志信息输送的目的地为控制台、文件、GUI组件等&#xff0c;通过定义每一条日志信息的…

推荐系统设计与实现 协同过滤推荐算法 计算机竞赛

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 推荐系统设计与实现 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1…

高效节省IT资源,WorkPlus让企业轻松实现业务场景的快速移动化

在企业的业务移动化进程中&#xff0c;维护iOS、安卓、桌面端不仅需要专业的技术支持&#xff0c;更需要投入大量的IT人力资源。然而&#xff0c;选择WorkPlus作为移动化解决方案&#xff0c;企业可以轻松省去iOS、安卓、桌面端工程师的维护成本&#xff0c;只需借助H5工程师的…

搅拌站排队叫号系统 | 混凝土智慧物流管理平台

思伟软件 智慧物流管理平台 混凝土 用砼行 在线下单。工地通过砼行小程序下单&#xff0c;搅拌站通过砼行APP接单。 智能调度。手机打卡&#xff0c;自动排队。大小车自动分列&#xff0c;拌台生产随时看。电子小票直达司机手机。自动收到砼行APP推送的电子小票与广播发车提…

C 数据类型

C 数据类型 在 C 语言中&#xff0c;数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统。变量的类型决定了变量存储占用的空间&#xff0c;以及如何解释存储的位模式。 C 中的类型可分为以下几种&#xff1a; 序号类型与描述1基本数据类型 它们是算术类型&#x…