📅  最后修改于: 2023-12-03 14:39:38.135000             🧑  作者: Mango
双端队列(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);
将一个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。