温馨提示×

C++中emplace函数应用实例

c++
小樊
86
2024-07-25 15:57:11
栏目: 编程语言

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函数插入元素时,构造函数被调用来构造对象,而不需要进行拷贝操作,从而提高了效率。

0