代码任务:对map的value进行sort
代码如下:
class Solution {
public:
bool cmp(const pair& a, const pair& b)
{
return a.second > b.second;
}
vector topKFrequent(vector& nums, int k) {
map numMap;
for(int i=0; i> mapVec(numMap.begin(), numMap.end());
sort(mapVec.begin(), mapVec.end(), cmp);
vector res;
for(int i=0; i
遇到问题:
Line 13: Char 44: error: reference to non-static member function must be called
sort(mapVec.begin(), mapVec.end(), cmp);
^~~
1 error generated.
错误原因:
sort函数第三个参数可选填,且sort函数的第三个参数不允许有指针参数。
类中如果成员函数没有声明为static,c++会默认给成员函数添加一个this指针。
所以:将cmp函数声明为static成员函数即可,或者写在类外面。改正如下:
class Solution {
public:
static bool cmp(const pair& a, const pair& b)
{
return a.second > b.second;
}
vector topKFrequent(vector& nums, int k) {
map numMap;
for(int i=0; i> mapVec(numMap.begin(), numMap.end());
sort(mapVec.begin(), mapVec.end(), cmp);
vector res;
for(int i=0; i 

![[C++类静态成员函数]error: reference to non-static member function must be called [C++类静态成员函数]error: reference to non-static member function must be called](http://www.mshxw.com/aiimages/31/948397.png)
