如何用C++实现一个函数,根据二维整数数组中每一行的第一个元素进行升序排序?
时间: 2024-10-27 16:11:18 浏览: 18
CCF PTA编程培训师资认证考试-P试卷-C++
在C++中,你可以通过自定义函数结合STL中的`sort()`算法来实现这个功能。首先,你需要创建一个辅助比较函数,用于确定行中第一个元素的顺序。然后,你可以遍历整个二维数组,对每个行的首元素进行排序,这里假设你的数组是一个动态大小的`std::vector<std::vector<int>>`。
以下是一个简单的示例:
```cpp
#include <algorithm> // 包含sort()算法
#include <vector>
// 辅助函数,用于比较二维数组中的行
bool compare_rows(const std::vector<int>& row1, const std::vector<int>& row2) {
return row1[0] < row2[0]; // 比较第一元素是否小于第二个元素
}
// 函数对二维数组按行首元素升序排序
void sortRowsByFirstElement(std::vector<std::vector<int>>& matrix) {
for (auto& row : matrix) { // 遍历矩阵中的每一行
std::sort(row.begin(), row.end(), compare_rows); // 使用自定义比较函数对行进行排序
}
}
int main() {
std::vector<std::vector<int>> matrix = {{4, 2, 7}, {1, 5, 3}, {9, 6, 8}}; // 示例输入矩阵
sortRowsByFirstElement(matrix);
// 现在matrix已经按照行首元素升序排列
// 输出排序后的矩阵...
return 0;
}
```
阅读全文