用STL List容器编写矩阵就地顺时针旋转90°
时间: 2023-12-03 14:47:09 浏览: 68
下面是用STL List容器编写矩阵就地顺时针旋转90°的代码实现:
```cpp
#include <iostream>
#include <list>
using namespace std;
int main()
{
// 创建一个3x3的矩阵
list<list<int>> matrix{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
// 打印原始矩阵
cout << "Original Matrix:" << endl;
for (const auto& row : matrix) {
for (const auto& num : row) {
cout << num << " ";
}
cout << endl;
}
// 就地顺时针旋转90度
int n = matrix.size();
for (int i = 0; i < n / 2; ++i) {
for (int j = i; j < n - i - 1; ++j) {
int temp = matrix[i][j];
matrix[i][j] = matrix[n-j-1][i];
matrix[n-j-1][i] = matrix[n-i-1][n-j-1];
matrix[n-i-1][n-j-1] = matrix[j][n-i-1];
matrix[j][n-i-1] = temp;
}
}
// 打印旋转后的矩阵
cout << "Rotated Matrix:" << endl;
for (const auto& row : matrix) {
for (const auto& num : row) {
cout << num << " ";
}
cout << endl;
}
return 0;
}
```
我们首先创建了一个3x3的矩阵,然后打印出原始矩阵。接着,我们就地顺时针旋转90度,旋转的方法是先对矩阵的外圈进行旋转,再对内圈进行旋转。最后,我们打印出旋转后的矩阵。
阅读全文