数据结构——动态数组

数据结构——动态数组

动态数组是一种可以在运行时动态调整大小的数组,它提供了比静态数组更灵活的功能。在C++中,可以使用标准库中的std::vector来实现动态数组。

std::vector是一个模板类,可以存储任意类型的元素,并提供了许多实用的方法来操作数组。以下是使用std::vector实现动态数组的示例:

#include <iostream>
#include <vector>

int main() {
    
    
    std::vector<int> dynamicArray; // 声明一个动态数组

    // 添加元素到动态数组
    dynamicArray.push_back(1);
    dynamicArray.push_back(2);
    dynamicArray.push_back(3);

    // 访问和修改动态数组中的元素
    int element = dynamicArray[1]; // 访问索引为1的元素
    dynamicArray[2] = 4; // 修改索引为2的元素

    // 输出动态数组的大小和元素
    std::cout << "Size of dynamic array: " << dynamicArray.size() << std::endl;
    for (int i = 0; i < dynamicArray.size(); i++) {
    
    
        std::cout << dynamicArray[i] << " ";
    }
    std::cout << std::endl;

    // 清空动态数组
    dynamicArray.clear();

    return 0;
}

在上述示例中,我们使用std::vector来声明一个存储整数类型的动态数组。使用push_back方法可以将元素添加到动态数组的末尾。使用索引操作符[]可以访问和修改动态数组中的元素。

std::vector还提供了许多其他有用的方法,如size()方法返回动态数组的大小,clear()方法清空动态数组中的所有元素等。

与静态数组相比,动态数组具有以下优势:

  • 可以动态调整大小:使用push_back、pop_back等方法可以方便地添加和删除元素,使动态数组的大小可以根据需要进行动态调整。
  • 自动内存管理:std::vector会自动处理内存的分配和释放,避免了手动管理内存的麻烦。
  • 可以在堆上分配:动态数组的内存通常在堆上分配,使得可以处理大量的元素,而不受栈空间大小的限制。

猜你喜欢

转载自blog.csdn.net/qq_45902301/article/details/131713423