首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将矩阵(2d-std::vector)旋转90°

将矩阵(2d-std::vector)旋转90°是一个常见的编程问题,可以通过以下方式实现:

  1. 创建一个新的矩阵,并将其大小设置为原始矩阵的列数作为行数,行数作为列数。
  2. 使用两个嵌套的循环,将原始矩阵的每个元素复制到新的矩阵中,但是需要注意行列的转换。
  3. 如果原始矩阵是一个N x N的矩阵,则只需要进行一半的元素交换即可,可以通过将循环的范围限制为N/2来实现。

以下是一个示例的C++代码实现:

代码语言:txt
复制
#include <iostream>
#include <vector>

// 定义一个函数来旋转矩阵
std::vector<std::vector<int>> rotateMatrix(std::vector<std::vector<int>>& matrix) {
    int n = matrix.size(); // 获取矩阵的大小

    // 创建一个新的矩阵
    std::vector<std::vector<int>> rotatedMatrix(n, std::vector<int>(n, 0));

    // 进行矩阵旋转
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            rotatedMatrix[j][n - i - 1] = matrix[i][j];
        }
    }

    return rotatedMatrix;
}

int main() {
    // 创建一个示例矩阵
    std::vector<std::vector<int>> matrix = {{1, 2, 3},
                                            {4, 5, 6},
                                            {7, 8, 9}};

    // 调用旋转矩阵函数
    std::vector<std::vector<int>> rotatedMatrix = rotateMatrix(matrix);

    // 输出旋转后的矩阵
    for (int i = 0; i < rotatedMatrix.size(); i++) {
        for (int j = 0; j < rotatedMatrix[i].size(); j++) {
            std::cout << rotatedMatrix[i][j] << " ";
        }
        std::cout << std::endl;
    }

    return 0;
}

运行上述代码,将会输出旋转后的矩阵:

代码语言:txt
复制
7 4 1 
8 5 2 
9 6 3 

这是一个基本的矩阵旋转问题的解决方案。对于更复杂的情况,比如在原地旋转矩阵或者使用不同的编程语言,可以进行进一步的研究和实现。

腾讯云相关产品和产品介绍链接地址:暂无推荐链接。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券