c++

c++数组切片如何实现动态扩容

小樊
84
2024-08-13 00:23:39
栏目: 编程语言

在C++中,数组是一种固定大小的数据结构,无法像动态数组一样动态扩容。但是可以通过使用动态数组(如std::vector)和复制数据的方式来实现类似的功能。

下面是一个简单的示例,演示如何使用std::vector实现动态扩容的功能:

#include <iostream>
#include <vector>

int main() {
    std::vector<int> vec;

    // 添加元素到动态数组
    for (int i = 0; i < 10; i++) {
        vec.push_back(i);
    }

    std::cout << "原始数组大小: " << vec.size() << std::endl;

    // 扩容数组
    vec.resize(20);

    // 添加更多元素到动态数组
    for (int i = 10; i < 20; i++) {
        vec[i] = i;
    }

    std::cout << "扩容后数组大小: " << vec.size() << std::endl;

    // 输出数组元素
    for (int i = 0; i < vec.size(); i++) {
        std::cout << vec[i] << " ";
    }

    return 0;
}

在上面的示例中,我们使用了std::vector来实现动态数组,并使用resize函数来扩容数组的大小。然后我们可以像操作普通数组一样操作动态数组。

另外,还可以使用std::vector的reserve函数来预留一定大小的存储空间,避免频繁扩容带来的性能开销。

0
看了该问题的人还看了