在C++中,sort函數的比較函數cmp可以通過定義一個函數對象或者Lambda表達式來實現。比較函數cmp需要返回一個bool值,用于指定排序的順序。
下面是一個使用函數對象定義比較函數cmp的示例:
struct cmp {
bool operator()(int a, int b) {
return a < b;
}
};
int main() {
vector<int> vec = {3, 1, 4, 1, 5, 9};
sort(vec.begin(), vec.end(), cmp());
for (int num : vec) {
cout << num << " ";
}
return 0;
}
下面是一個使用Lambda表達式定義比較函數cmp的示例:
int main() {
vector<int> vec = {3, 1, 4, 1, 5, 9};
sort(vec.begin(), vec.end(), [](int a, int b) {
return a < b;
});
for (int num : vec) {
cout << num << " ";
}
return 0;
}
在上面的示例中,比較函數cmp都是按照升序排序的規則來定義的。根據實際需要,可以修改比較函數cmp以實現不同的排序規則。