emplace_back和push_back是cpp11的新特性之一,都是对vector内添加元素的方法。
区别在于:
push_bach():
首先需要调用构造函数构造一个临时对象,然后调用拷贝构造函数将这个临时对象放入容器中,然后释放临时变量。
emplace_back():
这个元素原地构造,不需要触发拷贝构造和转移构造。
如果使用push_back,由于每次需要调用析构函数,所以理论上emplace_back比push_back更快一点。
emplace_back和push_back是cpp11的新特性之一,都是对vector内添加元素的方法。
区别在于:
push_bach():
首先需要调用构造函数构造一个临时对象,然后调用拷贝构造函数将这个临时对象放入容器中,然后释放临时变量。
emplace_back():
这个元素原地构造,不需要触发拷贝构造和转移构造。
如果使用push_back,由于每次需要调用析构函数,所以理论上emplace_back比push_back更快一点。