vector二维数组与蛇形矩阵

来源:互联网 发布:桌面图标隐藏软件 编辑:程序博客网 时间:2024/06/05 09:08

最近在学习STL,感觉真的是好用,以前二维数组动态分配要自己写循环,还要注意释放内存。现在一个vector全解决。

int n;    cin >> n;    vector<int> line(n);    vector<vector <int>> matrix(n, line);    int m, i, j, num, flag = 1;    m = n*n + 1;    i = 0; j = 0;    for (num = 1; num <= m / 2; num++)   //生成矩阵    {        matrix[i][j] = num;        matrix[n - i - 1][n - j - 1] = m - num;        i = i - flag; j = j + flag;        if (i < 0){ i = 0; flag = -flag; }        if (j < 0){ j = 0; flag = -flag; }    }//输出矩阵    for (auto l : matrix)    {        for (auto k : l)        {            cout << k<<"\t";        }        cout << endl;    }    system("pause");    return 0;
0 0