跳到主要内容

std::deque resize() 方法

// (1) Non const version only
void resize( size_type count );

// (2) Non const version only
void resize( size_type count, const value_type& value );

将容器的大小调整为包含 count 个元素。

如果当前大小大于 count,则容器将缩小到其前 count 个元素。
如果当前大小小于 count

  • (1) 会追加额外的默认插入元素。
  • (2) 会追加额外的 value 副本。

参数

  • count - 容器的新大小
  • value - 用于初始化新元素的值

类型要求

T 在此列表中。

返回值

(无)

复杂度

与当前大小和 count 之间的差值呈线性关系 - O(size() - count)

异常

(无)

备注

如果重载 (1) 中的值初始化是不希望的,例如,如果元素是非类类型且不需要清零,则可以通过提供自定义的 Allocator::construct() 来避免。

示例

Main.cpp
#include <iostream>
#include <deque>

int main()
{
std::deque<int> c = {1, 2, 3};
std::cout << "The deque holds: ";
for (const auto& el: c) std::cout << el << ' ';
std::cout << '\n';

c.resize(5);
std::cout << "After resize up to 5: ";
for (const auto& el: c) std::cout << el << ' ';
std::cout << '\n';

c.resize(2);
std::cout << "After resize down to 2: ";
for (const auto& el: c) std::cout << el << ' ';
std::cout << '\n';

c.resize(6, 4);
std::cout << "After resize up to 6 (initializer = 4): ";
for (const auto& el: c) std::cout << el << ' ';
std::cout << '\n';
}
输出
The deque holds: 1 2 3
After resize up to 5: 1 2 3 0 0
After resize down to 2: 1 2
After resize up to 6 (initializer = 4): 1 2 4 4 4 4
本文源自此 CppReference 页面。它可能因改进或编辑者的偏好而有所改动。点击“编辑此页面”查看本文档的所有更改。
悬停查看原始许可证。

std::deque resize() 方法

// (1) Non const version only
void resize( size_type count );

// (2) Non const version only
void resize( size_type count, const value_type& value );

将容器的大小调整为包含 count 个元素。

如果当前大小大于 count,则容器将缩小到其前 count 个元素。
如果当前大小小于 count

  • (1) 会追加额外的默认插入元素。
  • (2) 会追加额外的 value 副本。

参数

  • count - 容器的新大小
  • value - 用于初始化新元素的值

类型要求

T 在此列表中。

返回值

(无)

复杂度

与当前大小和 count 之间的差值呈线性关系 - O(size() - count)

异常

(无)

备注

如果重载 (1) 中的值初始化是不希望的,例如,如果元素是非类类型且不需要清零,则可以通过提供自定义的 Allocator::construct() 来避免。

示例

Main.cpp
#include <iostream>
#include <deque>

int main()
{
std::deque<int> c = {1, 2, 3};
std::cout << "The deque holds: ";
for (const auto& el: c) std::cout << el << ' ';
std::cout << '\n';

c.resize(5);
std::cout << "After resize up to 5: ";
for (const auto& el: c) std::cout << el << ' ';
std::cout << '\n';

c.resize(2);
std::cout << "After resize down to 2: ";
for (const auto& el: c) std::cout << el << ' ';
std::cout << '\n';

c.resize(6, 4);
std::cout << "After resize up to 6 (initializer = 4): ";
for (const auto& el: c) std::cout << el << ' ';
std::cout << '\n';
}
输出
The deque holds: 1 2 3
After resize up to 5: 1 2 3 0 0
After resize down to 2: 1 2
After resize up to 6 (initializer = 4): 1 2 4 4 4 4
本文源自此 CppReference 页面。它可能因改进或编辑者的偏好而有所改动。点击“编辑此页面”查看本文档的所有更改。
悬停查看原始许可证。