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

avatar
作者
猴君
阅读量:0

要按列对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是一个二维向量,它的行和列可以根据实际情况进行修改。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!