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尾部

相关推荐
散峰而望3 分钟前
【数据结构】单调栈与单调队列深度解析:从模板到实战,一网打尽
开发语言·数据结构·c++·后端·算法·github·推荐算法
qwehjk20084 分钟前
内存泄漏自动检测系统
开发语言·c++·算法
tankeven8 分钟前
HJ153 实现字通配符*
c++·算法
草莓熊Lotso10 分钟前
MySQL 多表连接查询实战:内连接 + 外连接
android·运维·数据库·c++·mysql
旖-旎10 分钟前
位运算(两整数之和)(3)
c++·算法·leetcode·位运算
杨校11 分钟前
杨校老师课堂备战C++之数据结构中栈结构专题训练
开发语言·数据结构·c++
2301_8166512214 分钟前
C++与Rust交互编程
开发语言·c++·算法
君鼎22 分钟前
More Effective C++ 条款35:让自己熟悉C++标准库
c++
扶摇接北海17622 分钟前
洛谷:P1307 [NOIP 2011 普及组] 数字反转
c++·算法·洛谷
Fortune7923 分钟前
实时操作系统中的C++
开发语言·c++·算法