vector的resize函数简介

vector 的 resize() 函数可以改变容器的大小,同时也可以改变内部元素的数量。它的语法如下:

vector<type> v;
v.resize(n);           // 将v的大小改为n,新元素的值为该type的默认值
v.resize(n, value);    // 将v的大小改为n,并将新元素的值设为value
//其中,n 代表 vector 容器的大小,value 代表新元素的值。

示例用法

#include <iostream>
#include <vector>

using namespace std;

int main() {
    vector<int> v1;     // 创建一个空的 vector 容器 v1
    v1.resize(5);       // 将 v1 的大小改为 5
    for(int i=0; i<v1.size(); i++)
        cout << v1[i] << " ";     // 输出:0 0 0 0 0

    vector<int> v2;     // 创建一个空的 vector 容器 v2
    v2.resize(5, 1);    // 将 v2 的大小改为 5,并且新元素的值为 1
    for(int i=0; i<v2.size(); i++)
        cout << v2[i] << " ";     // 输出:1 1 1 1 1

    return 0;
}

注意

请注意,当将 vector 容器的大小减小时,容器最后几个元素会被删除。例如:

#include <iostream>
#include <vector>

using namespace std;

int main() {
    vector<int> v1(5, 1);    // 创建一个值为 1 的大小为 5 的 vector 容器 v1
    v1.resize(3);            // 将 v1 的大小改为 3,最后两个元素会被删除
    for(int i=0; i<v1.size(); i++)
        cout << v1[i] << " ";     // 输出:1 1 1

    return 0;
}

当容器的内存空间不够时,resize() 函数会重新申请内存空间。这会导致将现有元素复制到一个新的内存地址,因此当 vector 容器内部的元素数量很大时,调用 resize() 函数可能会很耗时。

个人水平有限,有问题随时联系!

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐