如何动态创建二维数组[cpp]

我们常见的用new来

动态创建一维数组:

int m; std::cin>>m;

int* 数组名=new int[m];

动态创建二维数组:

方法一:

int n; // 地图的长宽
cin >> n;

int** map = new int*[n]; // 创建一个指针的数组,每个指针指向一个整数数组
for (int i = 0; i < n; i++) {
    map[i] = new int[n]; // 为每个指针分配一个整数数组
}

// 现在您可以访问 map[i][j] 来操作二维数组中的元素

// 记得在不再使用时释放内存
for (int i = 0; i < n; i++) {
    delete[] map[i]; // 释放每个整数数组
}
delete[] map; // 释放指针的数组

方法二:

这个要有vector库函数

#include 
#include 
using namespace std;

int main() {
    int n; // 地图的长宽
    cin >> n;

    vector> map(n, vector(n)); // 创建一个大小为 n x n 的二维 vector

    // 现在您可以使用 map[i][j] 来操作二维数组中的元素
    // 无需手动释放内存,vector 会在作用域结束时自动释放内存

    return 0;
}

你可能感兴趣的:(算法,数据结构)