vector容器中push_back()和emplace_back()函数的区别

news/2024/6/18 21:31:58 标签: c++

底层实现区别:

push_back()向容器尾部添加元素时,首先会创建这个元素,然后再将这个元素拷贝或移动到容器中(如果是拷贝的话,事后会自行销毁先前创建的这个元素)

emplace_back()则直接在容器尾部创建这个元素,省去了拷贝或移动元素的过程,所以在效率上更优。

总结:

emplace_back()函数比push_back()有了一定的改进:

  • 性能优化:就地构造,直接在容器内构造对象,不用拷贝一个复制品再使用
  • 运行效率:省去了使用拷贝构造函数的过程,效率更高

http://www.niftyadmin.cn/n/5201670.html

相关文章

本地搭建Stackedit Markdown编辑器结合内网穿透实现远程访问

文章目录 1. docker部署Stackedit2. 本地访问3. Linux 安装cpolar4. 配置Stackedit公网访问地址5. 公网远程访问Stackedit6. 固定Stackedit公网地址 StackEdit是一个受欢迎的Markdown编辑器,在GitHub上拥有20.7k Star!,它支持将Markdown笔记保…

香港服务器减少延迟的几种方法

我们在租用香港服务器时,总觉得网站程序反应太慢。选择了香港服务器的开发商和企业对香港服务器目前的访问速度不满意 怎么办?第一点是换服务器。更换配置更大、带宽更高的服务器,可以更好的解决网站访问速度。如何减少香港服务器的延时 速度…

怎么让NetCore接口支持Json参数

项目:NetCore Web API 接口支持Json参数需要安装Newtonsoft.Json.Linq和Microsoft.AspNetCore.Mvc.NewtonsoftJson Program代码 //支持json需要安装Microsoft.AspNetCore.Mvc.NewtonsoftJson using Newtonsoft.Json.Serialization;var builder WebApplication.Cr…

基于Apache部署虚拟主机网站

文章目录 Apache释义Apache配置关闭防火墙和selinux 更改默认页内容更改默认页存放位置个人用户主页功能基于口令登录网站虚拟主机功能基于ip地址相同ip不同域名相同ip不同端口 学习本章完成目标 1.httpd服务程序的基本部署。 2.个人用户主页功能和口令加密认证方式的实现。 3.…

Parallel Diffusion Models of Operator and Image for Blind Inverse Problems

盲逆问题算子和图像的并行扩散模型 论文链接:https://arxiv.org/abs/2211.10656 项目链接:https://github.com/BlindDPS/blind-dps Abstract 在正向算子已知的情况下(即非盲),基于扩散模型的逆问题求解器已经展示了最先进的性能。然而&…

【Python】给出n个数,找出这n个数的最大值,最小值,和。

问题描述 给出n个数,找出这n个数的最大值,最小值,和。 样例输入 5 1 3 -2 4 5 Data 样例输出 5 -2 11 n int(input()) # 从用户输入中读取一个整数,将其赋给变量n# 从用户输入中读取一行字符串,使用空格分割字符串&a…

HarmonyOS云开发基础认证【最新题库 满分答案】

系列文章 HarmonyOS应用开发者基础认证【闯关习题 满分答案】 HarmonyOS应用开发者基础认证【满分答案】 HarmonyOS云开发基础认证【最新题库 满分答案】 目录 系列文章一、判断题二、单选题三、多选题 一、判断题 1.应用架构的演进依次经历了微服务架构、单体架构、Serverle…

【效率办公】新版后端提效神器(java)

每日更新笔记进度 第 1 章两天玩转后端开发提效神器三剑客课程介绍 1-1 后端开发提效神器三剑客课程介绍 1-2 后端提效神器课程大纲速览和效果演示 1-3 课程相关开发环境准备和新版SpringBoot2.X项目创 第 2 章写代码飞的感觉-急速上手Lombok插件原理 2-1 如果公司代码行…