动态分配二维数组

来源:互联网 发布:网站域名注册查询 编辑:程序博客网 时间:2024/06/01 07:20

这是

cout << "please input size: " ;    int m, n, i, j;    cin >> m >> n;    /*先分配指针数组*/    int **ary = new int*[m];    /*分配一维数组空间*/    for(i = 0; i < m; i++)        ary[i] = new int[n];    for(i = 0; i < m; i++)        for(j = 0; j < n; j++)            cin >> ary[i][j];    bool find = findNum(ary, m, n, 7);    cout << (find?"":"not ") << "found" << endl;    /*释放空间也是一维一维的释放*/    for(i = 0; i < m; i++)        delete[] ary[i];    delete[] ary;

这里顺便写上剑指offer中面试题三:二维数组中的查找

bool findNum(int **matrix, int rows, int columns, int number){    bool found = false;    if (matrix!=NULL && rows >0 && columns > 0)    {        int row = 0;         int column = columns - 1;        while(row <= rows && column >= 0){            if(matrix[row][column] > number)                column--;            else if(matrix[row][column] < number)                row++;            else{                found = true;                break;            }        }        /*while (row <= rows && column >= 0)        {            if (matrix[row*columns+column] > number)                column--;            else if(matrix[row*columns+column] < number)                row++;            else{                found = true;                break;            }        }*/    }    return found;}

(注释的部分是第一个参数是一维数组时的代码)

0 0
原创粉丝点击