vector的push_back和emplace
时间: 2023-03-19 12:25:48 浏览: 170
c++push_back 以及 emplace_back 的区别
vector的push_back和emplace的区别在于:
push_back是将元素复制一份后添加到vector的末尾,而emplace是在vector的末尾直接构造一个新元素。
push_back需要先创建一个元素对象,然后将其复制到vector的末尾,这个过程需要调用元素的拷贝构造函数,如果元素比较大,这个过程可能会比较耗时。
而emplace则是在vector的末尾直接构造一个新元素,这个过程只需要调用元素的构造函数,不需要额外的拷贝操作,因此效率更高。
另外,emplace还可以接受构造函数的参数,可以更方便地构造元素对象。
阅读全文