C++ Deque::assign() 函数



C++ 的 std::deque::assign() 函数用于用新元素替换 deque 的元素。它用于管理和更新 deque 数据,确保它在指定位置保存所需的元素。此函数有 3 个多态变体:使用范围版本、填充版本和初始化列表版本(您可以在下面找到所有变体的语法)。

语法

以下是 std::deque::assign() 函数的语法。

void assign (InputIterator first, InputIterator last);
or
void assign (size_type n, const value_type& val);
or
void assign (initializer_list<value_type> il);

参数

  • first, last − 指示序列中初始和最终位置的输入迭代器。
  • n − 指示容器的新大小。
  • val − 指示用于填充容器的值。
  • il − 指示一个初始化列表对象。

返回值

此函数不返回任何内容。

异常

如果 first 和 last 的指定无效,则此函数返回未定义。

时间复杂度

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

示例

让我们看一下下面的示例,我们将从初始化列表中分配元素。

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

输出

以上代码的输出如下:

A B C D 

示例

考虑以下示例,我们将分配元素的范围。

#include <iostream>
#include <deque>
int main()
{
    std::deque<int> x;
    std::deque<int> y = {1, 22, 333, 4444};
    x.assign(y.begin(), y.end());
    for (auto& elem : x) {
        std::cout << elem << " ";
    }
    std::cout << std::endl;
    return 0;
}

输出

以下是以上代码的输出:

1 22 333 4444 

示例

在以下示例中,我们将用值 11 分配 3 个元素。

#include <iostream>
#include <deque>
int main()
{
    std::deque<int> a;
    a.assign(3, 11);
    for (auto& elem : a) {
        std::cout << elem << " ";
    }
    std::cout << std::endl;
    return 0;
}

输出

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

11 11 11 
deque.htm
广告