阅读量:0
emplace函数用于在容器中插入元素,并且避免了拷贝操作,直接在容器内构造对象。下面是一个简单的示例,展示了emplace函数的应用:
#include <iostream> #include <vector> class Person { public: Person(std::string name, int age) : name(name), age(age) { std::cout << "Constructing " << name << std::endl; } ~Person() { std::cout << "Destructing " << name << std::endl; } private: std::string name; int age; }; int main() { std::vector<Person> people; // 使用emplace_back函数来插入元素 people.emplace_back("Alice", 25); people.emplace_back("Bob", 30); return 0; }
在上面的示例中,我们定义了一个Person类,包含一个名字和年龄的成员变量。我们创建了一个vector容器people,并使用emplace_back函数来插入两个Person对象。在构造和析构函数中,我们输出了对象的名字,以便查看对象的生命周期。
输出结果应该如下所示:
Constructing Alice Destructing Alice Constructing Bob Destructing Bob
可以看到,使用emplace函数插入元素时,构造函数被调用来构造对象,而不需要进行拷贝操作,从而提高了效率。