📅  最后修改于: 2023-12-03 14:39:50.916000             🧑  作者: Mango
std::deque
是 STL(标准模板库)提供的容器之一。std::deque
是一个双端队列,可以在队列两端高效地进行插入和删除操作。std::deque.resize()
函数可以用于调整 std::deque
的长度。
std::deque.resize()
函数有两个重载形式:
void resize(size_type count);
void resize(size_type count, const value_type& value);
其中,
count
为调整后的 std::deque
长度;value
为新增元素的默认值。std::deque.resize()
函数用于调整 std::deque
的长度。若 count
大于当前 std::deque
的长度,则在后面添加元素使其满足该长度;若 count
小于当前 std::deque
的长度,则删除末尾的元素直至 count
等于当前 std::deque
的长度。
若使用第二种重载形式,则添加的新元素将默认为 value
。
#include <iostream>
#include <deque>
int main() {
std::deque<int> mydeque(3, 100); // 初始化 mydeque
mydeque.resize(5); // 调整 mydeque 的长度为 5
mydeque.resize(8, 200); // 新增 3 个值为 200 的元素
std::cout << "mydeque contains:";
for (auto it = mydeque.begin(); it != mydeque.end(); ++it)
std::cout << ' ' << *it;
std::cout << '\n';
mydeque.resize(12); // 新增 4 个元素
std::cout << "mydeque contains:";
for (auto it = mydeque.begin(); it != mydeque.end(); ++it)
std::cout << ' ' << *it;
std::cout << '\n';
return 0;
}
上述代码中,我们初始化了一个长度为 3,值为 100 的 std::deque
,然后先将其长度调整为 5,再新增 3 个值为 200 的元素。此时 mydeque
的长度为 8,其中前 3 个元素的值为 100,后 5 个元素的值为 200。
接着,我们将 mydeque
的长度调整为 12,添加了 4 个默认值元素。此时 mydeque
的长度为 12,其中前 3 个元素的值为 100,第 4 到第 8 个元素的值为 200,剩下的 4 个元素的值为默认值。
输出如下:
mydeque contains: 100 100 100 200 200 200 0 0
mydeque contains: 100 100 100 200 200 200 0 0 0 0 0 0
std::deque.resize()
函数是 std::deque
提供的一个调整容器长度的函数。当调整长度时,我们可以选择保留后面的元素或填充默认值。该函数十分实用,可以为我们的程序编写带来很大的便利。