📜  C ++ STL中的双端队列Assign()函数(1)

📅  最后修改于: 2023-12-03 14:39:38.135000             🧑  作者: Mango

C++ STL中的双端队列Assign()函数

双端队列(deque)是一种能够由两端进行插入和删除操作的容器,即双端可控序列。C++ STL中的deque容器提供了很多丰富的操作函数,其中Assign()函数使我们能够将一个deque容器的元素赋值到另一个deque中,或者将一个deque容器的一个子区间内的元素赋值到另一个deque中。

函数原型
void assign (size_type n, const value_type& val);
template <typename InputIterator>
void assign (InputIterator first, InputIterator last);
void assign (initializer_list<value_type> il);
参数说明
  • n:赋值的元素个数,将会赋值n个val。
  • val:用来赋值的值。
  • first:指向第一个元素的迭代器。
  • last:指向最后一个元素的后面一个位置的迭代器。
  • il:一个初始化列表。
函数作用

将一个deque容器的元素赋值到另一个deque中,或者将一个deque容器的一个子区间内的元素赋值到另一个deque中。

代码示例
#include <iostream>
#include <deque>
using namespace std;

int main()
{
    // 定义一个双端队列
    deque<int> dq = {1, 2, 3, 4, 5};

    // 将dq中前3个元素赋值到dq_copy中
    deque<int> dq_copy;
    dq_copy.assign(dq.begin(), dq.begin() + 3);

    cout << "dq_copy: ";
    for (auto i : dq_copy)
        cout << i << " ";
    cout << endl;

    // 将dq中的元素替换为5个10
    dq.assign(5, 10);

    cout << "dq: ";
    for (auto i : dq)
        cout << i << " ";
    cout << endl;

    return 0;
}

输出结果:

dq_copy: 1 2 3 
dq: 10 10 10 10 10

以上程序中,我们定义了一个包含5个元素的deque容器dq,然后将dq中前3个元素赋值到了dq_copy中,最后将dq中的元素替换为5个10。最终输出了dq_copy和dq的元素,可以看到dq_copy中包含dq的前3个元素,而dq中的元素已经被替换为了5个10。