c++中结构体数组排序
时间: 2023-11-24 15:50:44 浏览: 202
在C++中,结构体数组可以使用sort函数进行排序,也可以在结构体内部定义比较函数进行排序。
以下是两种方法的示例代码:
1.使用sort函数进行排序
```cpp
#include <iostream>
#include <algorithm>
using namespace std;
struct node {
int x, y;
}a[maxn];
bool cmp(node a, node b) {
if(a.x != b.x) return a.x < b.x;
else return a.y < b.y;
}
int main() {
int n;
cin >> n;
for(int i = 0; i < n; i++) {
cin >> a[i].x >> a[i].y;
}
sort(a, a + n, cmp);
for(int i = 0; i < n; i++) {
cout << a[i].x << " " << a[i].y << endl;
}
return 0;
}
```
2.在结构体内部定义比较函数进行排序
```cpp
#include <iostream>
using namespace std;
struct node {
int x, y;
bool operator < (const node& i) const {
if(x != i.x) return x < i.x;
else return y < i.y;
}
}a[maxn];
int main() {
int n;
cin >> n;
for(int i = 0; i < n; i++) {
cin >> a[i].x >> a[i].y;
}
sort(a, a + n);
for(int i = 0; i < n; i++) {
cout << a[i].x << " " << a[i].y << endl;
}
return 0;
}
```
阅读全文