vector

1.emplace_back()

c++11标准下,vector的emplace_back()函数, 其作用等同于push_back(),但较速度emplace_back更为优秀。

原因:push_back() 调用时先使用构造函数构造临时对象,然后使用拷贝构造函数将临时对象放到容器末尾,释放临时变量。而emplace_back()直接在容器末尾构造,并且可以根据传入参数类型进行临时变量初始化。总结:在vector中类型为结构体或是类的时候,emplace_back()效率优于push_back(), 而在对已有变量进行传递时二者效率差不多。但是emplace_back()传递参数中不能是迭代,引用一些和容器有关的变量,不然会发生错误

原文地址:https://www.cnblogs.com/mile-star/p/11300845.html