关于vector的emplace_back和push_back的区别

news/2024/10/30 17:22:41/
实验代码:
class A {
public:A(int x) {x = x;cout << "construct A" << endl;}A(const A& a) {x = a.x;cout << "copy construct A" << endl;}A(const A&& a) {cout << "Move construct A" << endl;}
private:int x;
};int main()
{vector<A> vec;vector<A> vec2;cout << endl << "emplace" << endl;vec.emplace_back(1);cout << endl << "push" << endl;vec2.push_back(1);
运行结果:

在定义了A的移动构造函数的时候
在这里插入图片描述
注释掉A的移动构造函数后
在这里插入图片描述

结果:

push_back会在有移动构造函数时优先使用移动构造,没有移动构造就使用拷贝构造。
emplace_back只进行一次构造。


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

相关文章

PyQt5常用模块、类、控件

一、常用模块 QtCore:包含非核心的GUI功能&#xff0c;此模块用于处理时间、文件和目录、各种数据类型、流、URL、MIME类型、线程或进程 QtGui&#xff1a;包括窗口系统集成、事件处理、二维图形、基本成像、字体和文本 QtWidgets&#xff1a;基本控件都位于pyqt5.qtwidgets…

计算机网络面试八股文攻略(二)—— TCP 与 UDP

一、基础概念 TCP 与 UDP 是活跃于 运输层 的数据传输协议 TCP&#xff1a;传输控制协议 &#xff08;Transmission Control Protocol&#xff09;–提供面向连接的&#xff0c;可靠的数据传输服务。具体来说就是一种要建立双端连接才能发送数据&#xff0c;能确保传输可靠的…

leecode刷题初级-数组【python版本】

删除排除数组中的重复项&#xff1a; 给你一个 升序排列 的数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使每个元素 只出现一次 &#xff0c;返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。 由于在某些语言中不能改变数组的长度&#xff0c;…

团队RONG合三状态,您的团队是哪一种?

前一阵举办了禅道软件团队2022年的年会。在年会上我跟大家提了关于团队RONG合的三个状态&#xff0c;今天就和大家分享下。 三个RONG合分别是融合、溶合和熔合。我在网上查了这三个词的解释&#xff0c;含义有相似的地方&#xff0c;也会通用。我们不是做学术研究&#xff0c;…

优秀的前端页面 :制定可用性和用户体验策略

制定可用性和用户体验策略是设计优秀前端页面的重要步骤。以下是一些关键要点&#xff1a; 1. 设计易用界面 界面应该简单、易于理解和导航。用户可以快速找到他们需要的信息&#xff0c;而不会感到迷失或困惑。此外&#xff0c;界面应该根据用户需求&#xff0c;提供有意义的…

高效便捷构造 Http 请求

Http 请求构造 如何构造http请求 对于Get请求: 地址栏直接输入点击收藏夹html 中的 link script img a…form 标签 这里我们重点强调 form 标签构造的 http请求 使用 form 标签构造http请求. <!-- 表单标签, 允许用户和服务器之间交互数据 --><form action"ht…

腾讯云副总裁黄俊洪:驭“云原生”之力,驱动产业互联网持续发展

引言 在云计算发展的十余年间&#xff0c;企业对云计算的诉求发生了巨大变化。曾经&#xff0c;企业上云更多集中在一些可见的云资源层面&#xff0c;然而随着上云的不断深入&#xff0c;很多企业发现业务数字化仅靠资源层很难实现&#xff0c;尤其是在以大数据甚至大规模技术为…

【OpenCV 例程 300篇】257.OpenCV 生成随机矩阵

『youcans 的 OpenCV 例程300篇 - 总目录』 【youcans 的 OpenCV 例程 300篇】257. OpenCV 生成随机矩阵 3.2 OpenCV 创建随机图像 OpenCV 中提供了 cv.randn 和 cv.randu 函数生成随机数矩阵&#xff0c;也可以用于创建随机图像。 函数 cv.randn 生成的矩阵服从正态分布&…