温馨提示×

c++ resize能否改变数组大小

c++
小樊
85
2024-06-24 16:48:36
栏目: 编程语言

在c++中,resize()函数可以改变数组的大小。该函数在标准库中的vector容器和array容器中都提供了实现。

对于vector容器,resize()函数用于改变容器中元素的数量。如果新的大小大于当前大小,则容器会在末尾添加新元素,并将其初始化为默认值。如果新的大小小于当前大小,则容器会删除多余的元素。例如:

#include <iostream>
#include <vector>

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};
    
    std::cout << "Current size: " << vec.size() << std::endl;
    
    vec.resize(8); // 增加到8个元素
    
    std::cout << "New size: " << vec.size() << std::endl;
    
    vec.resize(3); // 减少到3个元素
    
    std::cout << "New size: " << vec.size() << std::endl;
    
    return 0;
}

对于array容器,resize()函数用于改变数组的大小。和vector不同的是,array的大小在编译时就已经确定,因此resize()函数只能通过重新定义一个新的array来改变大小。例如:

#include <iostream>
#include <array>

int main() {
    std::array<int, 5> arr = {1, 2, 3, 4, 5};
    
    arr = {1, 2, 3}; // 重新定义一个新的array,大小为3
    
    return 0;
}

因此,c++中的resize()函数可以改变vector容器中元素的数量,但对于array容器只能通过重新定义新的array来改变大小。

0