给出的任务是显示C ++ STL中deque::assign()的工作。
双端队列是双端队列。在C ++中,deque::assign()是一个内置函数,用于将新值分配给deque容器。每次调用此函数时,它都会通过替换现有值并更改相应分配的大小来为双端队列容器分配一个新值。
deque::assign()的语法如下-
dequename.assign(<int> size, <int> val)
此功能包括2个参数-
第一个是size,它表示双端队列容器的大小,第二个是val,它是双端队列容器包含的值。
同样,除了size和val之外,我们还可以给iterator作为参数来声明起点和终点,以两者的描述为例。
该函数没有返回值。
Input: dq.assign(5, 1) Output: deque elements are: 1 1 1 1 1 Input: dq.assign(5, 2) dq1.assign(dq.start()+2, dq.end()) Output: deque elements are: 2 2 2 2 2 deque elements are: 2 2 2
解释-deque dq有5个元素2 2 2 2 2,而在dq1中,我们从dq的开头和第三个元素开始跳过了2个元素,因此dq1有2 2 2。
#include <bits/stdc++.h> using namespace std; int main() { deque<int> deq; //分配5个值,每个值1- deq.assign(5, 1); //here, 5 is the size and 1 is the value cout << "deque elements are: "; for (auto it = deq.begin(); it != deq.end(); it++) cout << *it << " "; return 0; }
输出结果
如果我们运行上面的代码,它将生成以下输出-
deque elements are: 1 1 1 1 1
#include <bits/stdc++.h> using namespace std; int main() { deque<int> deq; //分配5个值,每个2个 deq.assign(5, 2); cout << "deque elements are: "; for (auto it = deq.begin(); it != deq.end(); it++) cout << *it << " "; deque<int> deq1; //分配所有元素 //第二个位置deque1- deq1.assign(deq.begin() + 2, deq.end()); cout << "\ndeque1 elements are: "; for (auto it = deq1.begin(); it != deq1.end(); it++) cout << *it << " "; return 0; }
输出结果
如果我们运行上面的代码,它将生成以下输出-
deque elements are: 2 2 2 2 2 deque1 elements are: 2 2 2