emplace是向容器追加要素时的操作,与以前的insert,push_back相比效率更高,简单地说,可以提高容器的插入效率。
vct or:em place==insertemplace _ back==push _ backset:emplcace==insert map:em place==insert中,除了上述三种类型之外
具体的区别请看下面的代码
classstu{Public:stu(intnum,string name ) { snum=num; sname=name; cout'this is build function '; (} int snum; 字符串名称; (; int main () { stackstu st; ST.push(1,' bb '; ST.EMplace(23,' bb '; 返回0; }以上代码在运行st.push时会报告错误,在st.emplace中会正常运行。 原因是推式必须在运行时生成临时对象。 在上面的代码中,无法使用隐式构造函数生成该临时变量,但emplace可以直接调用构造函数进行构建。 推在生成临时变量后,如果再次调用复制构造函数,就会生成两次,所以效率很低。