首页 > 编程知识 正文

C 11中emplace的最简单初步的理解,权益法和成本法最简单的理解

时间:2023-05-05 02:03:03 阅读:180045 作者:375

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可以直接调用构造函数进行构建。 推在生成临时变量后,如果再次调用复制构造函数,就会生成两次,所以效率很低。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。