📅  最后修改于: 2023-12-03 15:13:55.532000             🧑  作者: Mango
std::list::emplace_back()
函数是 C++ STL 中 std::list
容器中的一个成员函数,用于在该链表的末尾添加一个元素。与 push_back()
函数不同的是,emplace_back()
函数直接在链表末尾构造一个元素,而不是先通过构造函数创建一个临时对象,再将其复制或移动到容器中。这样可以减少额外的构造、拷贝或移动操作。
template<class... Args>
void emplace_back(Args&&... args);
args
: 用于初始化新插入元素的构造参数,可以是任意个数的参数。该函数没有返回值。
#include <iostream>
#include <list>
struct Person {
std::string name;
int age;
Person(std::string name, int age): name(std::move(name)), age(age) {}
};
int main() {
std::list<Person> people;
people.emplace_back("Alice", 20);
people.emplace_back("Bob", 25);
for (auto& person: people) {
std::cout << person.name << " is " << person.age << " years old." << std::endl;
}
return 0;
}
输出:
Alice is 20 years old.
Bob is 25 years old.
std::list
容器。std::list::emplace_back()
函数是 std::list
容器中用于在链表末尾添加元素的高效成员函数,与 push_back()
函数的区别在于它直接在容器中构造新元素,避免了额外的拷贝或移动操作。这样的优势使得 emplace_back()
函数成为 C++ STL 中一个重要的容器操作方法。