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
广告