📅  最后修改于: 2023-12-03 15:13:56.303000             🧑  作者: Mango
forward_list
是C++ STL中的容器之一,它是一个单向链表,在 C++11 中引入。forward_list
中的函数 emplace_front()
用于在链表最前面插入一个元素,与 push_front()
函数不同的是,emplace_front()
能够在链表的第一个节点前插入新元素,并同时进行构造。
void emplace_front(Args&&... args);
Args
:要插入元素的类型。args
:传递给元素构造函数的参数。emplace_front()
函数使用在容器的最前面添加一个元素,并根据参数构造元素。如果该元素是用户定义的类型,则使用该类型的默认构造函数。如果参数需要传递给元素的构造函数,则会直接转发参数。
#include <iostream>
#include <forward_list>
#include <string>
using namespace std;
int main() {
forward_list<pair<int, int>> myList;
myList.emplace_front(1, 2);
myList.emplace_front(3, 4);
for (auto& i : myList) {
cout << "(" << i.first << "," << i.second << ")" << " ";
}
cout << endl;
return 0;
}
输出:
(3,4) (1,2)
以上例子中,我们定义了一个类型为 pair<int, int>
的 forward_list
,并使用 emplace_front()
插入两个元素。最终,在遍历该链表时,可以看到最前面的元素为 (3, 4)
,其后为 (1,2)
。
emplace_front()
函数与 push_front()
类似,但它可以直接在链表头部使用给定的参数构造新元素,而不是在链表中插入已构造的元素。由于直接使用参数构造,emplace_front()
的性能通常优于使用 push_front()
。
forward_list
是C++ STL中的容器之一,它是一个单向链表。emplace_front()
函数用于在链表最前面插入一个元素。emplace_front()
能够在链表的第一个节点前插入新元素,并同时进行构造。它比 push_front()
性能更好。emplace_front()
函数语法如下:void emplace_front(Args&&... args);