C++ Deque::emplace_front() 函式



C++ 的std::deque::emplace_front() 函式用於在雙端佇列的開頭插入一個元素。與 push_front() 不同,後者插入元素的副本,emplace_front() 直接在雙端佇列中構造元素,避免了不必要的複製或移動。

語法

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

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

引數

  • args - 表示轉發到構造新元素的引數。

返回值

此函式不返回任何內容。

異常

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

時間複雜度

此函式的時間複雜度為線性,即 O(n)

示例

在以下示例中,我們將考慮 emplace_front() 函式的基本用法。

#include <iostream>
#include <deque>
int main() {
    std::deque<int> a = {22,333,4444};
    a.emplace_front(1); 
    for (auto num : a) {
        std::cout << num << " ";
    }
    std::cout << std::endl; 
    return 0;
}

輸出

以上程式碼的輸出如下:

1 22 333 4444 

示例

考慮另一種情況,我們將字元元素插入到雙端佇列的前面。

#include <iostream>
#include <deque>
int main()
{
    std::deque<char> a = {'B', 'C', 'D'};
    a.emplace_front('A');
    for (auto num : a) {
        std::cout << num << " ";
    }
    std::cout << std::endl;
    return 0;
}

輸出

如果我們執行以上程式碼,它將生成以下輸出:

A B C D

示例

在以下示例中,我們將使用移動語義插入元素。

#include <iostream>
#include <deque>
#include <string>
int main()
{
    std::deque<std::string> a = {"TP"};
    std::string b = "TutorialsPoint, ";
    a.emplace_front(std::move(b));
    for (const auto& word : a) {
        std::cout << word << " ";
    }
    std::cout << std::endl;
    return 0;
}

輸出

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

TutorialsPoint,  TP 
deque.htm
廣告