最近在学习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;
转载请注明原文地址: https://ju.6miu.com/read-1202851.html