sort函数根据结构体中的distance一项来比较结构体数组的大小的c++ 的样例程序
时间: 2024-04-30 17:21:55 浏览: 114
下面是一个示例程序,展示如何使用`sort`函数来按照结构体中的`distance`成员变量对结构体数组进行排序。
```cpp
#include <iostream>
#include <algorithm>
using namespace std;
// 定义一个结构体
struct Point {
int x, y;
double distance; // 距离
};
// 定义比较函数,用于sort函数排序
bool cmp(Point a, Point b) {
return a.distance < b.distance;
}
int main() {
// 初始化结构体数组
Point points[3] = {{1, 2, 3.2}, {3, 4, 5.1}, {5, 6, 7.8}};
// 使用sort函数排序结构体数组
sort(points, points + 3, cmp);
// 输出排序后的结果
for (int i = 0; i < 3; i++) {
cout << "(" << points[i].x << ", " << points[i].y << ", " << points[i].distance << ")" << endl;
}
return 0;
}
```
在上面的示例程序中,我们首先定义了一个结构体`Point`,其中包含了两个整型成员变量`x`和`y`,以及一个双精度浮点型成员变量`distance`。接着,我们定义了一个比较函数`cmp`,用于指定sort函数按照结构体中的`distance`成员变量进行排序。最后,我们初始化了一个包含三个结构体的数组`points`,并使用sort函数对其进行排序。最后,我们输出排序后的结果。
需要注意的是,在使用sort函数时,我们需要传入三个参数:待排序的数组的起始地址、待排序的数组的结束地址(即最后一个元素的下一个地址),以及比较函数的函数指针。在上面的示例程序中,我们使用`sort(points, points + 3, cmp)`来对结构体数组进行排序。
阅读全文