C++中,vector的一个成员函数emplace_back()很好地体现了零拷贝技术,它跟push_back()函数一

区别在于:使用push_back()函数需要调用拷贝构造函数和转移构造

参考

std::set<Key,Compare,Allocator>::emplace - cppreference.com https://en.cppreference.com/w/cpp/container/set/emplace

C++emplace_back能完全代替push_back吗? - 知乎 除了没有显示构造函数的类,是不是emplace_back就没有任何缺点? https://www.zhihu.com/question/387522517

emplace_back与push_back的区别_MaxMaxXiong的博客-CSDN博客 C++11中经常用到插入操作对stl的各种容器进行操作,比如vector,map,set等,以vector为列,当数据类型实现了移动构造函数时,push_back()插入一个右值时,会先调用构造函数创建临时对象,再调用移动构造函数将对象放置到容器中,如果数据类型没有实现移动构造函数,push_back()插入一个右值时,会先调用构造函数创建临时对象,再调用拷贝构造函数将对象放置到容器中;而empl https://blog.csdn.net/greywolf0824/article/details/106085276?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-4.pc_relevant_paycolumn_v3&spm=1001.2101.3001.4242.3&utm_relevant_index=7