相关疑难解决方法(0)

std :: sort()的c ++自定义比较函数

我想为std :: sort()创建自定义比较函数,以对一些键值对std :: pair进行排序

这是我的功能

 template <typename K, typename V>
 int comparePairs(const void* left, const void* right){
        if((((pair<K,V>*)left)->first) <= (((pair<K,V>*)right)->first))
            return 1;
        else 
            return -1;
    }
Run Code Online (Sandbox Code Playgroud)

然后,在一些类里面我有对类成员的向量:

vector<pair<K,V>> items;  
Run Code Online (Sandbox Code Playgroud)

以及使用std :: sort()按键对此向量进行排序的一些方法

std::sort(items.begin(), items.end(), comparePairs<K,V>);
Run Code Online (Sandbox Code Playgroud)

我内部有编译错误,其中说

"无法将参数编号从'std :: pair <_Ty1,_Ty2>'转换为'const void*'"

.什么是错误?

c++

23
推荐指数
3
解决办法
10万
查看次数

标签 统计

c++ ×1