c++sort函数排序二维数组
时间: 2024-09-14 14:00:54 浏览: 64
在C++中,`sort` 函数是标准库中的算法,用于对容器或数组的元素进行排序。对于二维数组,由于它本身不是一个容器类型,不能直接使用 `std::sort`。不过,我们可以通过指定一个排序函数,来实现对二维数组的排序。
通常,二维数组可以看作是数组的数组,即一个数组的元素是另一个数组。如果我们想要对二维数组的行进行排序,可以将 `std::sort` 应用于二维数组的首指针。下面是一个简单的例子,演示如何使用 `std::sort` 对二维数组的行进行排序,假设我们有一个 `int` 类型的二维数组:
```cpp
#include <algorithm> // 包含std::sort的头文件
#include <iostream>
int main() {
const int ROWS = 3;
const int COLS = 4;
int arr[ROWS][COLS] = {
{4, 2, 3, 1},
{9, 7, 6, 5},
{8, 10, 1, 3}
};
// 使用std::sort对二维数组的行进行排序
std::sort(arr, arr + ROWS, [](const int (&a)[COLS], const int (&b)[COLS]) {
return std::lexicographical_compare(std::begin(a), std::end(a),
std::begin(b), std::end(b));
});
// 打印排序后的二维数组
for (int i = 0; i < ROWS; ++i) {
for (int j = 0; j < COLS; ++j) {
std::cout << arr[i][j] << ' ';
}
std::cout << std::endl;
}
return 0;
}
```
在这个例子中,我们使用了 lambda 表达式来指定排序规则,其中 `std::lexicographical_compare` 函数用于逐个元素比较两行的大小。
阅读全文