Xây Dựng Comparison Function Cho Hàm Sort Trong C++
Xây dựng comparison function
Hàm so sánh khi sử dụng hàm sort chính là tham số thứ 3 mà bạn sẽ truyền vào hàm khi sắp xếp mảng, vector.
Hàm này có kiểu trả về là true hoặc false và có 2 tham số với kiểu dữ liệu tương ứng với mảng mà bạn muốn sắp xếp.
Tên của hàm so sánh do chúng ta đặt, ví dụ là cmp.
Cú pháp hàm so sánh :
bool cmp(data_type x, data_type y){ //logic }
Logic khi trả về giá trị của hàm so sánh :
- Nếu muốn x đứng trước y sau khi sắp xếp thì trả về true
- Nếu muốn x đứng sau y sau khi sắp xếp thì trả về false
x và y ở đây bạn có thể coi như đó là 2 giá trị trong mảng mà bạn cần sắp xếp, khi sắp xếp thì hàm sort cần so sánh giá trị giữa 2 phần tử này. Bạn chỉ cần kiểm tra xem thứ tự của x và y có thỏa mãn x sẽ đứng trước y theo thứ tự sắp xếp của mảng không thì bạn trả về true, ngược lạ trả về false.
Ví dụ như bạn muốn sắp xếp mảng tăng dần, vậy thì x nhỏ hơn y sẽ đứng trước y, khi đó bạn kiểm tra nếu x < y thì bạn trả về true, ngược lại trả về false.
Ví dụ 1 : Sắp xếp mảng giảm dần
#include <iostream>
#include <algorithm>
using namespace std;
bool cmp1(int a, int b){
if(a > b)
return true;
else
return false;
}
int main(){
int a[] = {1, 3, 3, 3, 2, 1, 2, 4, 2, 4, 0, 2};
int n = 12;
sort(a, a + n, cmp1);
cout << "Mang giam dan : ";
for(int i = 0; i < n; i++){
cout << a[i] << " ";
}
}
Mang giam dan : 4 4 3 3 3 2 2 2 2 1 1 0
- KỸ NĂNG MỀM TRONG NGÀNH CÔNG NGHỆ THÔNG TIN: “VŨ KHÍ BÍ MẬT” GIÚP BẠN NỔI BẬT
- Lợi ích của việc tham gia nghiên cứu khoa học của sinh viên
- Các kiểu ra quyết định trong hành vi người tiêu dùng
- Thị trường tín chỉ carbon: Cơ hội và động lực cho phát triển bền vững tại Việt Nam
- Bridging the Gap: Overcoming Communication Barriers in the English Language Classroom

