不同语言的sort()比较器对比
前提
以下ret为数组
JAVA
Arrays.sort(ret,new Comparator<int[]>(){
public int compare(int[] a,int[] b){
return Math.abs(a[0] - r0) + Math.abs(a[1] - c0) < Math.abs(b[0] - r0) + Math.abs(b[1] - c0);
}
});
C++
sort(ret.begin(),ret.end(),[=](vector<int>& a,vector<int>& b){
return abs(a[0] - r0) + abs(a[1] - c0) < abs(b[0] - r0) + abs(b[1] - c0);
});
- 这里的[=]是值传递,有时候也可以为引用传递[&]。