C++ Deque::operator=() 函数



C++ 的 std::deque::operator=() 函数用于将一个 deque 的内容赋值给另一个 deque。它用源 deque 的内容替换目标 deque 的内容。此函数有 3 个多态变体:使用复制版本、移动版本和初始化列表版本(您可以在下面找到所有变体的语法)。

operator= 可以正确处理自我赋值,这意味着 x = x 不会导致问题。

语法

以下是 std::deque::operator=() 的语法。

deque& operator= (const deque& x);
or	
deque& operator= (deque&& x);
or
deque& operator= (initializer_list<value_type> il);

参数

  • x - 表示相同类型的 deque 对象。
  • il - 表示一个初始化列表对象。

返回值

它返回 this 指针

异常

此函数从不抛出异常。

时间复杂度

此函数的时间复杂度为线性,即 O(n)

示例

让我们看下面的示例,我们将把一个 deque 赋值给另一个 deque。

#include <iostream>
#include <deque>
int main()
{
    std::deque<char> x = {'A', 'B', 'C', 'D'};
    std::deque<char> y;
    y = x;
    std::cout << "y contains: ";
    for (char elem : y) {
        std::cout << elem << " ";
    }
    return 0;
}

输出

以上代码的输出如下:

y contains: A B C D

示例

考虑以下示例,我们将执行自我赋值。

#include <iostream>
#include <deque>
int main()
{
    std::deque<int> x = {11, 22, 3, 4};
    x = x;
    std::cout << "x contains: ";
    for (int elem : x) {
        std::cout << elem << " ";
    }
    return 0;
}

输出

以下是以上代码的输出:

x contains: 11 22 3 4

示例

在以下示例中,我们将把较小的 deque 赋值给较大的 deque 并观察输出。

#include <iostream>
#include <deque>
int main()
{
    std::deque<char> x = {'A', 'B', 'C'};
    std::deque<char> y = {'D', 'E', 'F', 'G', 'H'};
    y = x;
    std::cout << "y contains: ";
    for (char elem : y) {
        std::cout << elem << " ";
    }
    return 0;
}

输出

如果我们运行以上代码,它将生成以下输出:

y contains: A B C 
deque.htm
广告