📜  C++ STL-Deque.resize()函数(1)

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

C++ STL-Deque.resize()函数

概述

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 提供的一个调整容器长度的函数。当调整长度时,我们可以选择保留后面的元素或填充默认值。该函数十分实用,可以为我们的程序编写带来很大的便利。