首页 > 其他分享 >sort函数之cmp

sort函数之cmp

时间:2023-03-25 16:57:10浏览次数:34  
标签:sort const 函数 static 谓词 cmp

    bool static cmp(const  pair<int,int>&a,const pair<int,int>&b)     {         return a.second < b.second ;//从小到大   return a.second > b.second;//从大到小        }   好像还有一个跟这个是反的,等想起来再补充吧   编译报错:

reference to non-static member function must be called

首先说明问题意思:这个问题是指你引用(调用)了非静态函数,但你不是通过类对象来调用的。问题的来源就是sort()函数的第三个谓词参数。为什么会是这样的呢?

按照常理来说,同一个类的非静态const成员函数中能相互调用,而不用通过类对象进行访问,为什么这里不行呢?相反如果我们把谓词函数com()定义为static函数问题就没有了。

问题的原因其实就是函数参数不匹配的问题。因为我们普通的成员函数都有一个隐含的this指针,表面上看我们的谓词函数com()只有两个参数,但实际上它有三个参数,而我们调用sort()排序函数的时候只需要用到两个参数进行比较,所以就出现了形参与实参不匹配的情况(函数有三个形参,但是只输入了两个实参)。

所以,解决办法就是把谓词函数com()定义为static成员函数。

原文链接:https://blog.csdn.net/qq_26849233/article/details/77930991

标签:sort,const,函数,static,谓词,cmp
From: https://www.cnblogs.com/ysl99999/p/17255051.html

相关文章

  • 函数练习题2
    ......
  • 函数练习题1
    ......
  • 使用Map+函数式优化if else
    使用Map+函数式接口优化ifelse工作中遇到一个接口要返回不同数据表中的数据,首先想到的是使用if-else或者switchcase:例如: if(("1").equals(dataType)){re......
  • 万能的排序“qsort”
    今日份学习“qsort”函数前言:针对一个数组的元素进行排序,我们可以想到冒泡排序法,且如果将该排序法专门写入一个函数,需排序的数组调入其中是不是方便很多呢?且如果要实现这样......
  • 算法分析与设计——冒泡排序,选择排序,STL自带sort函数性能比较实验
    实验环境:Win11,Devc++5.11实验方法:生成不同数据量的随机数后使用三种排序方法分别排序,比较每种方法所耗时长。实验结果:数据量为1000时,冒泡排序平均用时为0.015s,选择排序平......
  • c语言部分系统调用函数(shell编程)
    头文件<fcntl.h>文件控制<unistd.h>符号常量<sys/stat.h>文件状态<sys/types.h>基本系统数据类型<utime.h>文件时间<dirent.h>目......
  • 基于隶属度函数模糊CMAC神经网络算法matlab仿真
    1.算法描述       CMAC神经网络具有小脑的机能,因而,被广泛应用于机器人的运动控制。或者反过来说,正是为了机器人的运动控制,Albus构造了CMAC神经系统,以模拟脊椎动物......
  • 【C】内存操作函数
    继字符函数与字符串函数(下)本章来介绍一组内存操作函数,内容如下:内存操作函数mon-memory记忆即内存memcpymemmovememsetmemcmp这些函数头文件都是#include<st......
  • go 笔记 init函数
    来自:goinit函数1、golang里的main函数是程序的入口函数,olang还有另外一个特殊的函数init函数,先于main函数执行init函数的主要作用:初始化不能采用初始化表达式初始化的......
  • MATLAB计算变异函数并绘制经验半方差图
      本文介绍基于MATLAB求取空间数据的变异函数,并绘制经验半方差图的方法。(基于MATLAB的变异函数计算与经验半方差图绘制)  其中,由于本文所用的数据并不是我的,因此遗憾......