顺时针将矩阵旋转90°
#include<iostream> #include<vector> using namespace std; void rotate(vector<vector<int>> &matrix){ int n = matrix.size(); for (int i = 0; i < n / 2;i++) for (int j = 0; j < n / 2+1; j++){ int tmp = matrix[i][j]; matrix[i][j] = matrix[n - 1 - j][i]; matrix[n - 1 - j][i] = matrix[n - 1 - i][n - 1 - j]; matrix[n - 1 - i][n - 1 - j] = matrix[j][n - 1 - i]; matrix[j][n - 1 - i] = tmp; } } void printvec(vector<vector<int>> vec){ int n = vec.size(), m = vec[0].size(); cout << "[" << endl; for (int i = 0; i < n; i++) { cout << "["; for (int j = 0; j < m; j++){ cout << vec[i][j] << ","; } cout << "]" << endl; } cout << "]" << endl; } int main(){ vector<vector<int>> vec{ { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }; printvec(vec); rotate(vec); printvec(vec); system("pause"); return 0; }