c++ emplace_back()与push_back()
程序员文章站
2022-03-21 17:39:02
...
C++ 11 标准新增加的操作函数,在使用效果上与push_back大致一样,只不过底层实现不同。
emplace操作
emplace操作大致包含三个成员:emplace_front、emplace 和 emplace_back。分别对应与之前的push_front、insert 和push_back。顾名思义,分别是将数据插入容器的头部,指定位置和尾部。
在使用上新加上的三种操作与之前三种无差异。
主要区别
主要区别是在底层函数的实现上。
push_back 会在使用的时候调用构造函数和转移构造函数。
首先会调用构造函数构造这个临时对象,然后需要调用拷贝构造函数将这个临时对象放入容器中。原来的临时变量释放。
emplace_back会在插入数据的时候后直接构造数据。很底层的知识这里不提,总而言之是相比push,emplace底层实现更简洁,效率高。
使用
# push_back
v.push_back(make_pair(c, make_pair(x, y)));
# emplace_back
v.emplace_back(make_pair(c, make_pair(x, y)));
上一篇: Matplotlib 画动态图:
下一篇: 纯CSS3怎么给文本添加背景图