📅  最后修改于: 2023-12-03 14:39:51.936000             🧑  作者: Mango
在 C++ STL 中的 list 容器中,有 emplace_front() 和 emplace_back() 两个函数,它们可以在容器的起始位置和末尾位置插入一个元素,与 push_front() 和 push_back() 函数相比,这两个函数可以避免了额外的复制和移动操作,更加高效。
emplace_front() 函数可以将参数传递给元素构造函数,以在容器的起始位置插入一个元素。emplace_front() 函数的语法为:
void emplace_front(Args&&... args);
其中 Args 表示元素构造函数的参数类型,args 表示元素构造函数的参数值。
使用 emplace_front() 函数可以避免额外的复制和移动操作,因为插入的元素是在容器中构建出来的。
emplace_back() 函数与 emplace_front() 函数类似,可以将参数传递给元素构造函数,以在容器的末尾位置插入一个元素。emplace_back() 函数的语法为:
void emplace_back(Args&&... args);
其中 Args 表示元素构造函数的参数类型,args 表示元素构造函数的参数值。
与 emplace_front() 函数一样,使用 emplace_back() 函数可以避免额外的复制和移动操作,因为插入的元素是在容器中构建出来的。
下面是一个使用 emplace_front() 和 emplace_back() 函数的示例代码:
#include <iostream>
#include <list>
int main() {
std::list<int> my_list;
// 在容器的起始位置插入元素
my_list.emplace_front(1);
// 在容器的末尾位置插入元素
my_list.emplace_back(2);
// 输出容器中的元素
for (auto i : my_list) {
std::cout << i << std::endl;
}
return 0;
}
输出结果为:
1
2
从输出结果可以看出,使用 emplace_front() 函数将元素 1 插入到了容器的起始位置,使用 emplace_back() 函数将元素 2 插入到了容器的末尾位置。