C++ Reference: Standard C++ Library reference: Containers: list: list: emplace

news2025/4/4 17:12:23

C++官网参考链接:https://cplusplus.com/reference/list/list/emplace/

公有成员 
<list>
std::list::emplace
template <class... Args>  iterator emplace (const_iterator position, Args&&... args);
构造并插入元素
通过在position上插入一个新元素来扩展容器。这个新元素是使用args作为构造它的实参来就地构造的。
这有效地将容器的size增加了1。
与其他标准顺序容器不同,list和forward_list对象被专门设计为在任何位置(甚至在序列中间)高效插入和删除元素。
元素是通过使用转发的args调用allocator_traits::construct就地构造的。
存在一个类似的成员函数insert,它将现有对象复制或移动到容器中。

形参 
position 
插入新元素的容器中的位置。
成员类型const_iterator是指向const元素的双向iterator(bidirectional iterator)类型。
args
用来构造新元素而转发的实参。

返回值
指向新插入元素的iterator。
成员类型iterator是指向元素的双向iterator(bidirectional iterator)类型。
新元素的存储是使用容器的allocator分配的,这可能会在失败时抛出异常(对于默认allocator,如果分配请求不成功,则抛出bad_alloc)。

用例
// list::emplace
#include <iostream>
#include <list>

int main ()
{
  std::list< std::pair<int,char> > mylist;

  mylist.emplace ( mylist.begin(), 100, 'x' );
  mylist.emplace ( mylist.begin(), 200, 'y' );

  std::cout << "mylist contains:";
  for (auto& x: mylist)
    std::cout << " (" << x.first << "," << x.second << ")";

  std::cout << '\n';
  return 0;
}
输出:

复杂度
常量。

iterator的有效性
没有变化。

数据竞争
完成容器的修改。
不访问包含的元素:同时访问或修改它们是安全的,但迭代包含position的范围就不安全了。

异常安全
强保证:如果抛出异常,则容器中不会有任何更改。
如果适当的实参不支持allocator_traits::construct,或者position无效,则会导致未定义的行为。 

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

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

相关文章

SpringMVC+SSM整合(完整版)

文章目录一、SpringMVC&#xff08;一&#xff09;SpringMVC简介1、什么是MVC2、什么是SpringMVC3、SpringMVC的特点4、MVC的工作流程&#xff08;二&#xff09;入门案例1、创建maven工程①引入依赖②配置web.xml③扩展配置方式2、总结&#xff08;三&#xff09;RequestMappi…

大学生个人网页模板 简单网页制作作业成品 极简风格个人介绍HTML网页设计代码下载

&#x1f389;精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

TZ-PEG-N3 四嗪聚乙二醇叠氮 Tetrazine-PEG-azide

四嗪可用于许多生物成像和生物共轭应用的生物正交反应。目前被广泛应用于蛋白质特定位点功能阐释、亚细胞结构选择性标记、药物靶向传递、活体动物分子影像和生物兼容性材料的制备等。 产品名称 Tetrazine-PEG-N3 四嗪聚乙二醇叠氮 中文名称 四嗪聚乙二醇叠氮 英文名称 …

[附源码]Nodejs计算机毕业设计基于Web的摄影爱好者交流社区Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置&#xff1a; Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分…

java计算机毕业设计ssm在线学习交流平台97t28(附源码、数据库)

java计算机毕业设计ssm在线学习交流平台97t28&#xff08;附源码、数据库&#xff09; 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff0…

[附源码]Python计算机毕业设计SSM基于web的教学资源管理系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

sql错误分析--SQLSyntaxErrorException-

### Error updating database-----指数据库database update错误. Cause: java.sql.SQLSyntaxErrorException--sql语法错误: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near > 2…

微信公众号开发——向指定用户发送模板消息

&#x1f60a; 作者&#xff1a; 一恍过去&#x1f496; 主页&#xff1a; https://blog.csdn.net/zhuocailing3390&#x1f38a; 社区&#xff1a; Java技术栈交流&#x1f389; 主题&#xff1a; 微信公众号开发——向指定用户发送模板消息⏱️ 创作时间&#xff1a; 20…

ArrayList源码解析与相关知识点

ArrayList源码解析于相关知识点&#xff08;超级详细&#xff09; 文章目录ArrayList源码解析于相关知识点&#xff08;超级详细&#xff09;ArrayList的继承关系Serializable标记接口Cloneable标记接口RandomAccess标记接口AbstractList类属性构造函数无参构造函数指定初始容量…

网络工程毕业设计 SSM疫情期间医院门诊管理系统(源码+论文)

文章目录1 项目简介2 实现效果2.1 界面展示3 设计方案3.1 概述3.2 系统开发流程3.3 系统结构设计4 项目获取1 项目简介 Hi&#xff0c;各位同学好呀&#xff0c;这里是M学姐&#xff01; 今天向大家分享一个今年(2022)最新完成的毕业设计项目作品&#xff0c;【基于SSM的疫情…

测试人生 | 转行测试开发,4年4“跳”年薪涨3倍,我的目标是星辰大海(附大厂面经)!

image1080500 66.1 KB 编者按&#xff1a;本文来自霍格沃兹测试学院优秀学员 TesterC&#xff0c;**从运营岗位转行外包测试&#xff0c;再到测试开发&#xff0c;从待业在家到4年4“跳”进入 BAT 大厂&#xff0c;年薪涨了3倍&#xff01;**他是如何完成如此励志的华丽转身的…

12.4、后渗透测试--内网主机数据包流量嗅探

攻击主机&#xff1a; Kali 192.168.11.106靶机&#xff1a;windows server 2008 r2 192.168.11.134Metasploitable2-Linux&#xff1a; 192.168.11.105当成功获取目标机器的会话后&#xff0c;可以使用嗅探手段获取更多信息。前提&#xff1a;获得 meterpreter shell1、加载s…

centos7 安装 zsh + fzf(历史命令搜索神器)

文章目录zsh 安装用 oh-my-zsh 配置 zshfzf 安装结语zsh 安装 参考 用 yum 自动下载安装 zsh yum install -y zsh 安装完成后查看系统可以用的 shell cat /etc/shells 将 zsh 设置为系统默认 shell chsh -s /bin/zsh 退出终端重新登录 查看当前使用的shell echo $0 用 oh-my-z…

大二Web课程设计——美食网站设计与实现(HTML+CSS+JavaScript)

&#x1f468;‍&#x1f393;静态网站的编写主要是用HTML DIVCSS JS等来完成页面的排版设计&#x1f469;‍&#x1f393;,常用的网页设计软件有Dreamweaver、EditPlus、HBuilderX、VScode 、Webstorm、Animate等等&#xff0c;用的最多的还是DW&#xff0c;当然不同软件写出的…

ArcGIS:按属性选择要素、按位置选择要素、空间和属性的组合查询;属性表中长度、面积等的量算

目录 01 说明 02 实验目的及要求 03 实验设备及软件平台 04 实验内容与步骤 4.1 由属性选择要素 4.2 由位置选择要素 4.3 查询四川省乐山市范围内的气象站点。 4.4 查询与乐山市相邻的地市州有哪些 4.5 计算四川省各个地市州的面积。 4.6 查询单一栅格或者多个栅格的不同方法。…

HTML+CSS篮球静态网页设计(web前端网页制作课作业)NBA杜兰特篮球运动网页

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

WPF入门第六篇 WPF的Binding

WPF的Binding 在传统的Windows软件中&#xff0c;大部分都是UI驱动程序的模式&#xff0c;也可以说事件驱动程序。WPF作为Winform的升级&#xff0c;它把UI驱动程序彻底改变了&#xff0c;核心回到了数据驱动程序的模式上面&#xff0c;这样&#xff0c;程序就回到了算法和数据…

[附源码]Python计算机毕业设计服装销售商城系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

【ESP8266-NodeMCU软硬串口通讯】

1. 前言 SoftwareSerial库允许在Arduino板的其他数字引脚上进行串行通信,使用软件复制功能(因此得名“SoftwareSerial”)。可以有多个软件串行端口,速度高达115200 bps。参数为需要该协议的设备启用反向信令。 1.1 要使用此库 请执行以下操作: #include <SoftwareS…

Prometheus的PromQL语法讲解和使用示例

目录1. PromQL介绍2. 基本用法2.1 查询时间序列2.2 范围查询2.3 时间位移操作2.4 聚合操作2.5 标量和字符串3. 表达式的合法格式4. PromQL操作符4.1 数学运算4.2 布尔运算4.3 集合运算符4.4 操作符优先级4.5 聚合操作1. PromQL介绍 PromQL提供对时间序列数据进行逻辑运算、过滤…