#include <stdio.h>
#include<iostream>
#include<vector>
using namespace std;
class EmplaceTest
{
public:
EmplaceTest()
{
cout << "ctor: " << this << endl;
}
EmplaceTest(int i)
{
m_i = i;
cout << "ctor: " << "i: " << i << "this: " << this << endl;
}
~EmplaceTest()
{
cout << "dtor: " << this << endl;
}
EmplaceTest(const EmplaceTest& rhs)
{
if(this == &rhs)
return;
this->m_i = rhs.m_i;
cout << "copy" << this << endl;
}
private:
int m_i;
};
int main()
{
vector<EmplaceTest> vecEmp ;
EmplaceTest e1(1);
vecEmp.push_back(e1);//采用push_back方法,则需要先构造临时对象,然后再调用拷贝构造,才能把对象放到vecEmp中,浪费性能。
vecEmp.emplace_back(2);//emplace_back可以直接构造然后放入到vecEmp中,原位构造。
printf("Hello World \n");
return 0;
}
09-25
880
05-14
3818
11-01
4408
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交