多维数组

是什么:
是数组的数组,指针的集合;

int* array=new int[50];//开辟50个int大小空间首地址传给array;
int** a2d=new int*[50];//开辟了50个int大小的指针空间地址传给a2d;

遍历设计每个指针指向一个存有50个int类型变量的数组
代码示例:

#include<iostream>
int main()
{
    int** a2d = new int* [50];
    for (int i = 0; i < 50; i++)
    {
        a2d[i] = new int[50];
       
    }
    for (int i = 0; i < 50; i++)//堆上建立的 用完要删
    {
        delete[] a2d[i];
    }
        delete[] a2d;
}

多维数组会导致内存分散的问题,造成cache miss会降低运行效率
抽象二维数组
代码示例

#include<iostream>
int main()
{
  int *arry=new int[5*5];
  for(int x=0;x<5;x++)
   {
    for(int y=0;y<5;y++)
    { 
     arry[x+y*5]=2;
     std::cout<< arry[x+y*5]<<std::endl;
    }
   }
}
posted @ 2024-07-15 10:23  Wzline  阅读(1)  评论(0编辑  收藏  举报