# std::list<T,Allocator>::resize

< cpp‎ | container‎ | list

void resize( size_type count ); | (1) | (C++11 起)
| (2) |
void resize( size_type count, T value = T() ); |  | (C++11 前)
void resize( size_type count, const value_type& value ); |  | (C++11 起)

重设容器大小以容纳 `count` 个元素。

若当前大小大于 `count` ，则减小容器为其首 `count` 个元素。

若当前大小小于 `count` ，

1) 则后附额外的默认插入的元素
2) 则后附额外的 `value` 的副本

### 参数

count | - | 容器的大小
value | - | 用以初始化新元素的值
类型要求
- 为使用重载 (1) ， `T` 必须满足可默认插入 (DefaultInsertable) 的要求。
- 为使用重载 (2) ， `T` 必须满足可复制插入 (CopyInsertable) 的要求。

### 返回值

（无）

### 复杂度

与当前大小和 `count` 间的差成线性。

### 注解

若不想要重载 (1) 中的值初始化，例如元素是非类类型且不需要清零，则可以提供定制的 `Allocator::construct` 避免。

### 示例

    #include <iostream>
    #include <list>
    int main()
    {
        std::list<int> c = {1, 2, 3};
        std::cout << "The list holds: ";
        for(auto& el: c) std::cout << el << ' ';
        std::cout << '\n';
        c.resize(5);
        std::cout << "After resize up to 5: ";
        for(auto& el: c) std::cout << el << ' ';
        std::cout << '\n';
        c.resize(2);
        std::cout << "After resize down to 2: ";
        for(auto& el: c) std::cout << el << ' ';
        std::cout << '\n';
    }

输出：

    The list holds: 1 2 3
    After resize up to 5: 1 2 3 0 0
    After resize down to 2: 1 2

### 参阅

size | 返回容纳的元素数 (公开成员函数)
insert | 插入元素 (公开成员函数)
erase | 擦除元素 (公开成员函数)