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
- So sánh giữa tiếng Anh của thập niên 90 và tiếng Anh của giới trẻ hiện nay
- GNN: Khi AI “hiểu” được mối quan hệ, không chỉ là dữ liệu
- XU HƯỚNG CONTENT MARKETING HIỆN NAY: SỰ CHUYỂN DỊCH TỪ NỘI DUNG ĐẾN TRẢI NGHIỆM
- Sự kiện đối thoại ART.ITECTURE #2: Xây dựng cảm xúc - Cách âm nhạc và kiến trúc định hình trải nghiệm của con người
- Các khía cạnh đạo đức trong quảng cáo

