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