Hỏi về hàm không truyền tham số

Mọi người cho em hỏi tại sao chỗ mylist.unique(same_integral_part); hàm same_integral_part khai báo có 2 tham số mà khi gọi lại không truyền gì ạ. Em cảm ơn ạ

#include <iostream>
#include <list>
using namespace std;

bool same_integral_part(double first, double second)
{
    return ( int(first)==int(second) );
}

int main()
{
    double myArray[] = {1.1,2.5,3.1,4.7,1.4,2.4,3.5,4.2};
    list<double> mylist (myArray, myArray+8);  //1.1,2.5,3.1,4.7,1.4,2.4,3.5,4.2

    /*Truoc khi dung ham unique phai sap xep mang theo thu tu tang dan
    neu ko ham unique se cho ket qua sai*/
    mylist.sort() ;//  1.1 1.4 2.4 2.5 3.1 3.5 4.2 4.7

    //Trong cac so co cung phan nguyen cua list, chi giu lai 1 so:
    mylist.unique(same_integral_part);   //1.1 2.4 3.1 4.2
    cout << "mylist gom cac so: ";
    for (list<double>::iterator it = mylist.begin)); it!=mylist.end(); it++)
        cout << *it<<" ";

    return 0;
}

smae_integral_part truyền vào mylist.unique() coi như là 1 biến, mà truyền 1 biến thì chỉ việc viết tên nó chứ làm gì có biến có tham số hả em :V

biến x truyền vào miễn viết x(a, b) và trả về kiểu mà convert sang bool được là được :V

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