基于键和值的c ++ map自定义比较方法

时间:2017-03-17 21:50:27

标签: c++ stl maps

我搜索了很多,但我找不到我想要的答案。

我需要根据键和值对c ++ map进行排序。 类似这种方法:

class ModelServiceProvider implements QueryableServiceProvider {
    public function single(SingleStruct $parameters): Model { // This is the line the error references
        /** Does the query and returns an instance of Model **/
    }
}

并使用类似的东西

bool mycomp(mii::iterator a, mii::iterator b) {
    if (a->second > b->second)
        return true;
    else if (a->second < b->second)
        return false;
    else
        return a->first > a->second;
}

其中m是:

sort(m.begin() , m.end(), mycomp);
我可以做这样的事吗?如果是的话,应该是正确的语法。

1 个答案:

答案 0 :(得分:0)

定义std::map时,您可以提供Compare函数作为模板参数。有关详细信息,请参阅the reference

但是,我认为这仅适用于密钥排序。键值排序不是继承到地图结构(即如果值发生变化会发生什么?)