emplace_back
是 C++ 中 vector
容器的一个成员函数,用于在容器的末尾直接构造一个新元素,并将其插入到容器中。
与 push_back
不同,emplace_back
允许你将参数直接传递给元素类型的构造函数,而不需要创建临时对象。这使得它更加高效,并且可以方便地在容器中构造自定义类型的对象。
下面是一个简单的示例,演示了 emplace_back
的用法:
#include <iostream>
#include <vector>
class MyObject {
public:
MyObject(int val1, double val2) : value1(val1), value2(val2) {
std::cout << "Constructor called: " << value1 << ", " << value2 << std::endl;
}
private:
int value1;
double value2;
};
int main() {
std::vector<MyObject> vec;
// 使用 emplace_back 插入元素,直接调用 MyObject 的构造函数
vec.emplace_back(1, 3.14);
vec.emplace_back(2, 6.28);
return 0;
}
在这个示例中,emplace_back
直接将参数传递给 MyObject
类型的构造函数,而不需要创建临时对象。这样可以提高效率,并且使代码更简洁。