必须引用非静态成员函数

问题描述 投票:0回答:2

下面的代码旨在在第一列的基础上对2D向量进行排序,但是它返回错误:

第8行:字符43:致命错误:引用非静态成员函数 必须叫 sort(people.begin(),people.end(),sortfunc); ^ ~~~~~~~~产生1个错误。

class Solution {
public:

bool sortfunc(const vector<int>& v1, const vector<int>& v2){
    return v1[0]<v2[0];
  }
vector<vector<int>> reconstructQueue(vector<vector<int>>& people) {
    sort(people.begin(),people.end(), sortfunc);
    return people;
  }
};
c++ function-pointers
2个回答
0
投票

正如@SevastianHoffmann所建议的那样,lambda函数完成了该任务。

class Solution {
public:

bool sortfunc(const vector<int>& v1, const vector<int>& v2){
    return v1[0]<v2[0];
  }
vector<vector<int>> reconstructQueue(vector<vector<int>>& people) {
    sort(people.begin(),people.end(), [](const vector<int>& v1, const vector<int>& v2){
    return v1[0]<v2[0];
  });
    return people;
  }
};
© www.soinside.com 2019 - 2024. All rights reserved.