push_back
1.一个临时对象的构造
2.一个临时对象的析构
3.一个容器内对象的拷贝构造
emplace``emplace_back
emplace
emplace_back
在比较新的c++已经会判断是否去调用push_back
了,所以基本上都用emplace即可.
#include
#include
#include
#include
#include using namespace std;class Point2D{
public:Point2D(int a,int b){std::cout<<"construct"<std::cout<<"copy construct"<std::cout<<"destruct"<std::vector vec;vec.reserve(5);std::cout<<"________________________vec.push_back({1,2});_________________________"<1,2});std::cout<<"________________________vec.push_back(Point2D(1,2));_________________________"<
________________________vec.push_back({1,2});_________________________
construct
copy construct
destruct
________________________vec.push_back(Point2D(1,2));_________________________
construct
copy construct
destruct
________________________vec.emplace_back(1,2);_________________________
construct
________________________vec.emplace_back(Point2D(1,2));_________________________
construct
copy construct
destruct
vec.size=4
destruct
destruct
destruct
destruct
上一篇:疑惑与解答