sort排序二维数组c++
时间: 2025-01-19 20:03:32 浏览: 83
### 如何在C++中对二维数组进行排序
对于多维数据结构中的排序操作,在C++中有多种方法可以实现。一种常见的方式是利用标准模板库(STL)中的`std::sort()`函数配合自定义比较器来完成特定维度上的排序。
#### 使用 `std::vector<std::vector<int>>` 和 `std::sort()`
为了更方便地处理动态大小的矩阵以及简化内存管理,推荐使用`std::vector`容器代替传统的固定尺寸数组。下面是一个简单的例子展示如何按照每一行的第一个元素升序排列整个二维向量:
```cpp
#include <iostream>
#include <algorithm> // std::sort()
#include <vector>
bool compare(const std::vector<int>& v1, const std::vector<int>& v2){
return v1[0] < v2[0];
}
int main(){
std::vector<std::vector<int>> matrix = {{3, 7}, {1, 9}, {4, 5}};
// 对matrix按每行第一个元素从小到大排序
std::sort(matrix.begin(), matrix.end(), compare);
for(auto& row : matrix){
for(int elem : row){
std::cout << elem << " ";
}
std::cout << "\n";
}
return 0;
}
```
这段程序首先导入必要的头文件并定义了一个用于比较两个子向量的辅助函数`compare[]`[^1]。接着创建一个包含三个整数向量的二维向量作为待排序的数据集。最后调用`std::sort()`来进行实际的排序工作,并打印结果验证效果。
如果希望基于其他列或者其他条件进行排序,则只需修改`compare`函数内的逻辑即可满足不同的应用场景需求。
阅读全文
相关推荐

















