C++11新加入的的三个成员emlace_front、empace 和 emplace_back,这三个操作,这三个操作分别对应push_front、insert 和push_back,他们都是插入数据用的。 emplace最大的特点是可以直接调用对象的构造函数,直接在对应容器的内中建立对象,省去了调用拷贝构造函数的开销。封装一个类型A,然后用A去测试
#include<vector>
#include<iostream>
using namesapce std:
class A
{
private:
int a;
public:
ee(int b)
{
this->a = b;
}
ee()
{
this->a = 0;
}
ee(const ee &obi) //拷贝构造函数
{
this->a = obi.a;
};
};
int main()
{
vector<A> tempVec;
tempVec.push_back(A(5)); //调用一次构造函数和一次拷贝构造函数
tempVec.emplace_back(5);//只调用一次构造函数。提高了效率。
return 0;
}