溫馨提示×

C++中emplace函數(shù)應用實例

c++
小樊
86
2024-07-25 15:57:11
欄目: 編程語言

emplace函數(shù)用于在容器中插入元素,并且避免了拷貝操作,直接在容器內構造對象。下面是一個簡單的示例,展示了emplace函數(shù)的應用:

#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函數(shù)來插入元素
    people.emplace_back("Alice", 25);
    people.emplace_back("Bob", 30);

    return 0;
}

在上面的示例中,我們定義了一個Person類,包含一個名字和年齡的成員變量。我們創(chuàng)建了一個vector容器people,并使用emplace_back函數(shù)來插入兩個Person對象。在構造和析構函數(shù)中,我們輸出了對象的名字,以便查看對象的生命周期。

輸出結果應該如下所示:

Constructing Alice
Destructing Alice
Constructing Bob
Destructing Bob

可以看到,使用emplace函數(shù)插入元素時,構造函數(shù)被調用來構造對象,而不需要進行拷貝操作,從而提高了效率。

0