【发布时间】:2022-08-13 20:43:18
【问题描述】:
myCompare() 函数是如何工作的?比如什么是p1,什么是p2?我想知道函数中发生了什么(比如调试)。
#include<iostream>
#include<vector>
#include<algorithm>
#include<utility>
using namespace std;
bool myCompare(pair<int, int> p1, pair<int, int> p2){
return p1.first<p2.first;
}
int main(){
int arr[]={10,16,7,14,5,3,12,9};
vector <pair <int, int>> v;
for(int i=0;i<(sizeof(arr)/sizeof(arr[0]));i++){
v.push_back(make_pair(arr[i],i));
}
for(auto a:v){
cout<<a.first<<\" \"<<a.second<<\" \";
}cout<<endl;
sort(v.begin(),v.end(),myCompare);
for(auto a:v){
cout<<a.first<<\" \"<<a.second<<\" \";
}cout<<endl;
}
-
您有明确声明的类型。对于任何排序功能,您都需要某种方法来比较两个元素以了解排序应该采用的顺序,这正是您的
myCompare所做的 -
您编写了函数并将其作为自定义比较器发送到
std::sort,但不知道它是如何/为什么工作的?嗯...