STL中emplace实现原理是什么?

复制代码
template <class... Args>
  void emplace_back (Args&&... args);

这个是vector的emplace_back方法,用到的c++11的语法有三个,分别是万能引用、完美转发、参数包。

参数包中的参数是用来构造vector<T>中的T对象。

假如我直接传的就是一个T对象,万能引用和完美转发实现传参的T是右值就调用移动构造,是左值就调用拷贝构造,如果是空就调用T默认构造,如果是普通参数就调T普通带参构造,所以emplace实现了你可以调用T的任意一个构造函数来构造T并插入vector尾部

相关推荐
c++之路9 小时前
C++信号处理
开发语言·c++·信号处理
故事还在继续吗11 小时前
C++20关键特性
开发语言·c++·c++20
青少儿编程课堂12 小时前
2026青少儿信息素养大赛备赛指南!Python/Scratch/C++备考要点
开发语言·c++·python
旖-旎12 小时前
深搜练习(电话号码字母组合)(3)
c++·算法·力扣·深度优先遍历
AIFarmer12 小时前
【无标题】
开发语言·c++·算法
John_ToDebug13 小时前
WebHostView 与 TabStrip 交互机制深度解析
c++·chrome·windows
南境十里·墨染春水14 小时前
C++笔记 STL——set
开发语言·c++·笔记
dgaf14 小时前
DX12 快速教程(17) —— 立体图标与合并渲染
c语言·c++·3d·图形渲染·d3d12
charlie11451419117 小时前
通用GUI编程技术——图形渲染实战(三十八)——顶点缓冲与输入布局:GPU的第一个三角形
开发语言·c++·学习·图形渲染·win32
用户8055336980317 小时前
现代Qt开发教程(新手篇)1.10——进程
c++·qt