栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

[C++类静态成员函数]error: reference to non-static member function must be called

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

[C++类静态成员函数]error: reference to non-static member function must be called

代码任务:对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
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/948397.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号