c++用法困惑[参数,参数]

闲来无事刷刷leetcode,目前刷了100多,不过都是用c来写的,发现有点刷不动,开始学习c++,用c++来刷,自己AC之后,去讨论区看答案,发现一个写法:

problem


class Solution {
public:
    vector<vector<int>> allCellsDistOrder(int R, int C, int r0, int c0) {
        vector<vector<int>> v;
        for(int i=0; i < R; i++) for(int j=0; j < C; j++) v.push_back({i, j});
        sort(v.begin(), v.end(), [r0, c0](const vector<int> &a, const vector<int> &b) {return abs(a[0] - r0) + abs(a[1] - c0) < abs(b[0] - r0) + abs(b[1] - c0);});
        return v;
    }
};

我原本的实现是vector里push三个int,然后排序,排序完再删掉第三个int ,看讨论区这位大佬的写法更简洁。

sort第三个参数是个函数指针,前面的[r0,c0]这是什么用法?

阅读 1.6k
1 个回答

@fefe 感谢fefe, lambda 表达式 此贴完结。

推荐问题