Advertisement

C++类中对sort函数传递自定义排序规则的几种实现方式

阅读量:

在近期于LeetCode平台上进行编程练习的过程中,我遇到了一个与C++语言相关的问题。当我在Solution类的某个函数中使用泛型算法中的sort函数,并在传递比较函数时,系统却输出了一系列错误信息:

在这里插入图片描述

观察这段红色提示的错误信息,似乎暗示需要使用.或者->来调用成员函数。然而,在类内部直接调用自身的其他成员函数通常是可行且不会引发问题的。在网络上搜索相关错误信息也未能找到有效的解决方案,直到阅读到一篇技术博客后才明白问题所在。原来,错误的原因在于传递给sort函数的指针函数并非静态成员函数,因此只需在所定义的比较函数前添加static关键字,将其转换为静态成员函数即可解决问题。
最初出现错误的代码形式如下:

复制代码
    class Solution {
    public:
    	bool cmp(const vector<int> &a,const vector<int> &b)
    	{
    		if(a[0]>b[0])
    		return false;
    		else
    		return a[1]<b[1];
    }

全部评论 (0)

还没有任何评论哟~