c++11的emplace

c++11的emplace,第1张

push_back与emplace_back的区别:

vector<Student> vec;//Student为自定义类
//vec.reserve(8);
Student stu1 = Student("alice");
vec.emplace_back(stu1);//与push_back没有区别,调用一次构造函数,一次拷贝构造函数

vec.emplace_back(Student("peter"));//与push_back没有区别,调用一次构造函数,一次移动构造函数(没有自定义移动构造函数,则调用拷贝构造函数)

vec.emplace_back("Brown");//与push_back有区别!!!仅调用一次构造函数~而push_back不支持这种写法

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/867160.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-12
下一篇 2022-05-12

发表评论

登录后才能评论

评论列表(0条)

保存