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不支持这种写法
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)