C++ Deque::resize() 函数



C++ 的 std::deque::resize() 函数用于调整 deque 的大小。如果新大小大于当前大小,则 deque 会扩展,新元素将添加到末尾。类似地,如果新大小较小,则 deque 将被截断,末尾的多余元素将被移除。

此函数有两个多态变体:使用默认值和值版本的变体(您可以在下面找到所有变体的语法)。

语法

以下是 std::deque::resize() 函数的语法。

void resize (size_type n);
or
void resize (size_type n, const value_type& val);

参数

  • n − 指示新容器的大小。
  • val − 指示容器元素的初始值。

返回值

此函数不返回任何值。

异常

如果重新分配失败,则抛出 bad_alloc 异常。

时间复杂度

此函数的时间复杂度为线性,即 O(n)

示例

在下面的示例中,我们将考虑 resize() 函数的基本用法。

#include <iostream>
#include <deque>
int main()
{
    std::deque<int> a;
    a.resize(4);
    for (auto& elem : a) {
        std::cout << elem << " ";
    }
    std::cout << std::endl;
    return 0;
}

输出

以上代码的输出如下:

0 0 0 0

示例

考虑以下示例,我们将调整 deque 的大小并赋值。

#include <iostream>
#include <deque>
int main()
{
    std::deque<char> x;
    x.resize(3, 'A');
    for (auto& elem : x) {
        std::cout << elem << " ";
    }
    std::cout << std::endl;
    return 0;
}

输出

以上代码的输出如下:

A A A

示例

让我们看下面的例子,我们将使用 resize() 函数减小 deque 的大小。

#include <iostream>
#include <deque>
int main()
{
    std::deque<int> a{1,12,23,34,45,56};
    a.resize(4);
    for (auto& elem : a) {
        std::cout << elem << " ";
    }
    std::cout << std::endl;
    return 0;
}

输出

如果运行以上代码,将生成以下输出:

1 12 23 34 
deque.htm
广告