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

使用vector<vector<int>> c++对二维矩阵的和进行排序?

使用vector<vector<int>> c++对二维矩阵的和进行排序可以按照以下步骤进行:

  1. 创建一个二维矩阵的vector<vector<int>>对象,命名为matrix。
  2. 遍历matrix,计算每一行的和,并将和存储在一个新的vector<int>对象中,命名为rowSums。
  3. 创建一个新的vector<pair<int, int>>对象,命名为sumIndexPairs,用于存储每一行和的索引对。
  4. 遍历rowSums,将每个和与其对应的索引插入sumIndexPairs中。
  5. 使用自定义的比较函数对sumIndexPairs进行排序,按照和的大小进行降序排序。
  6. 创建一个新的vector<vector<int>>对象,命名为sortedMatrix,用于存储排序后的矩阵。
  7. 遍历sumIndexPairs,根据索引对的顺序,将matrix中对应的行插入sortedMatrix中。
  8. 最后,sortedMatrix即为按照矩阵和排序后的结果。

以下是一个示例代码:

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

bool compare(const std::pair<int, int>& a, const std::pair<int, int>& b) {
    return a.first > b.first; // 按照和的大小进行降序排序
}

std::vector<std::vector<int>> sortMatrixBySum(std::vector<std::vector<int>>& matrix) {
    std::vector<int> rowSums;
    std::vector<std::pair<int, int>> sumIndexPairs;

    // 计算每一行的和,并存储在rowSums中
    for (const auto& row : matrix) {
        int sum = 0;
        for (const auto& num : row) {
            sum += num;
        }
        rowSums.push_back(sum);
    }

    // 构建和与索引的对,并存储在sumIndexPairs中
    for (int i = 0; i < rowSums.size(); i++) {
        sumIndexPairs.push_back(std::make_pair(rowSums[i], i));
    }

    // 按照和的大小进行排序
    std::sort(sumIndexPairs.begin(), sumIndexPairs.end(), compare);

    std::vector<std::vector<int>> sortedMatrix;
    // 根据索引对的顺序,将matrix中对应的行插入sortedMatrix中
    for (const auto& pair : sumIndexPairs) {
        sortedMatrix.push_back(matrix[pair.second]);
    }

    return sortedMatrix;
}

int main() {
    std::vector<std::vector<int>> matrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
    std::vector<std::vector<int>> sortedMatrix = sortMatrixBySum(matrix);

    // 输出排序后的矩阵
    for (const auto& row : sortedMatrix) {
        for (const auto& num : row) {
            std::cout << num << " ";
        }
        std::cout << std::endl;
    }

    return 0;
}

这段代码使用了vector<vector<int>>来表示二维矩阵,计算每一行的和,并将和与索引构建成pair对象,然后按照和的大小进行排序,最后根据排序后的索引顺序重新构建矩阵。这样就实现了对二维矩阵的和进行排序的功能。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云C++ SDK:https://cloud.tencent.com/document/product/876/19399
  • 腾讯云云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云云数据库MySQL版:https://cloud.tencent.com/product/cdb_mysql
  • 腾讯云对象存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云人工智能:https://cloud.tencent.com/product/ai
  • 腾讯云物联网通信(IoT Hub):https://cloud.tencent.com/product/iothub
  • 腾讯云移动开发:https://cloud.tencent.com/product/mobile
  • 腾讯云区块链服务:https://cloud.tencent.com/product/tbaas
  • 腾讯云元宇宙:https://cloud.tencent.com/product/tencent-metaverse
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 领券