Giải thích cách hoạt động về cách sắp xếp của struct trong c++

#include <iostream>
#include <algorithm>
#define nmax 100100
using namespace std;

struct a
{
	int s;
	int f;
} typedef timeh;

int cmp (timeh a, timeh b)
{
	if (a.f>b.f) return 0;
	return 1;
}

int main ()
{
	//IN;
	timeh h[10004];
	int n;
	cin>>n;
	for (int i=0; i<n; i++)
	{
		cin>>h[i].s>>h[i].f;
	}
	//OUT;
	sort (h, h+n, cmp);

	int dem=0;


	int x=h[0].s;
	for (int i=0; i<n; i++)
	{
		if (x<=h[i].s)
		{   cout << h[i].s <<" *"<<endl;

			dem++;
			x=h[i].f;
			//cout << x <<endl;
			cout << x <<" *d"<<endl;


		}
	}
	cout<<dem;

	return 0;
}

đây là đầu vào

5
1 3 
2 4
1 6
3 5
7 9

em chỉ băn khoăn ở chỗ cách sắp xếp một struck hoạt động như thế nào thôi à tại sao nó lại return 0 rồi return 1 rồi khi gọi hàm lại ko cần gọi đúng cú pháp .Hay nói cách khác là có anh nào giải thích hộ em cách sắp xếp theo thứ tự tăng dần của struck này đc ko ạ

Nếu return 0 thì là kết thúc hàm rồi, sao còn return 1 được nữa?

Chắc bạn đang nói dòng này: sort (h, h+n, cmp);
Bạn có thể tham khảo: https://en.cppreference.com/w/cpp/algorithm/sort#Parameters và đọc phần này “comparison function object”

Mình không hiểu câu hỏi, sắp xếp theo thứ tự tăng dần là gì?

2 Likes

ý mình là sắp xếp các phần tử theo dãy tăng dần với cái cột đàng sau ấy còn cái cột đầu nó sẽ biến đổi theo cái cột sau

???
Cột nào? Ý bạn là sf ấy hả? Nó là gì thế?

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?