C++ Deque::emplace_back() 函式



C++ 的std::deque::emplace_back()函式用於在雙端佇列的末尾插入一個新元素。與push_back()不同,push_back()複製或移動現有物件,而emplace_back()使用提供的引數構造元素。它避免了不必要的物件複製或移動。

語法

以下是std::deque::emplace_back()函式的語法。

void emplace_back (Args&&... args);

引數

  • args − 表示轉發給構造新元素的引數。

返回值

它不返回任何值。

異常

如果重新分配失敗,則丟擲bad_alloc異常。

時間複雜度

此函式的時間複雜度為常數,即O(1)。

示例

在下面的示例中,我們將對整數雙端佇列使用emplace_back()函式。

#include <iostream>
#include <deque>
int main()
{
    std::deque<int> a;
    a.emplace_back(1);
    a.emplace_back(22);
    a.emplace_back(333);
    for (const auto &elem : a) {
        std::cout << elem << " ";
    }
    return 0;
}

輸出

以上程式碼的輸出如下:

1 22 333

示例

考慮另一種情況,我們將對字串雙端佇列應用emplace_back()函式。

#include <deque>
#include <iostream>
#include <string>
int main()
{
    std::deque<std::string> a;
    a.emplace_back("TP");
    a.emplace_back("TutorialsPoint");
    for(const std::string& str : a) {
        std::cout << str << "  ";
    }
    return 0;
}

輸出

以下是以上程式碼的輸出:

TP  TutorialsPoint
deque.htm
廣告