c++

c++二维数组怎么按列排序

小亿
297
2024-01-29 09:26:34
栏目: 编程语言

要按列对C++二维数组进行排序,可以使用std::sort函数和自定义比较函数来完成。

首先,假设二维数组为arr,有m行n列。我们需要定义一个自定义的比较函数cmp,用于比较两个元素。

bool cmp(const vector<int>& a, const vector<int>& b) {
    return a[col] < b[col];
}

其中,col表示要按照哪一列进行排序。比较函数的返回值为true表示a应该在b之前,为false表示a应该在b之后。

然后,我们可以在主函数中使用std::sort函数对二维数组按列进行排序。假设要按第i列进行排序,则需要将col设置为i。

int main() {
    int m = arr.size();  // 行数
    int n = arr[0].size();  // 列数
    int col = i;  // 按第i列进行排序

    std::sort(arr.begin(), arr.end(), cmp);
    
    // 输出排序后的二维数组
    for (int i = 0; i < m; i++) {
        for (int j = 0; j < n; j++) {
            std::cout << arr[i][j] << " ";
        }
        std::cout << std::endl;
    }
    
    return 0;
}

这样,就可以按列对二维数组进行排序了。请注意,这里的arr是一个二维向量,它的行和列可以根据实际情况进行修改。

0
看了该问题的人还看了