WNJXYK
Thanks to the cruel world.
WNJXYKのBlog
LeetCode C++ 类中使用Sort函数方法
LeetCode C++ 类中使用Sort函数方法

血崩,比赛中死于不会使用自定义 Sort 函数,我能怎么办,我也很绝望呀。

因为 Sort 函数传入的比较函数是静态的,所以我们就不能那么方便的定义功能比较特殊的比较函数,比如说:我有一个数组 A,我想排序一个标号数组 idx,使得 A[idx[i]] 是有序的。因为比较函数是静态的,我们没办法访问数组 A

看别人的代码,看到了一个 Lambda表达式 写法,如下。

class Solution {
public:
    int function(vector<int>& A) {
        // Init
        n=A.size();
        int num[n+5], idx[n+5];

        // Solve
        for (int i=1; i<=n; i++) num[i]=A[i-1], idx[i]=i;
        sort(idx+1, idx+n+1, [&](int &a, int &b){ 
            if (num[a]==num[b]) return a<b;
            return num[a]>num[b]; 
        });

        return 0;
    }
};
赞赏
https://secure.gravatar.com/avatar/f83b57c055136369e9feba5d6671d6b5?s=256&r=g

WNJXYK

文章作者

一个蒟蒻

推荐文章

发表评论

textsms
account_circle
email

WNJXYKのBlog

LeetCode C++ 类中使用Sort函数方法
血崩,比赛中死于不会使用自定义 Sort 函数,我能怎么办,我也很绝望呀。 因为 Sort 函数传入的比较函数是静态的,所以我们就不能那么方便的定义功能比较特殊的比较函数,比如说:我有一…
扫描二维码继续阅读
2019-01-13
<--! http2https -->