C++ 使用字符串和int对对向量进行排序 化学机械抛光

C++ 使用字符串和int对对向量进行排序 化学机械抛光,c++,stl,C++,Stl,boolcmp(常数对&p1,常数对&p2){ 如果(p1.秒!=p2.秒) 返回p1.second

boolcmp(常数对&p1,常数对&p2){
如果(p1.秒!=p2.秒)
返回p1.second 返回strcmp(p1.first.c_str(),p2.first.c_str()); }

大家好

我试图根据
对的
第二个
元素对
向量进行排序。如果该对的
第二个
元素相等,则比较
对的
第一个
元素


我使用上面的代码对包含
字符串
int
对的
向量进行排序。我正在使用排序堆调用排序函数(vector.begin(),vector.end(),cmp)。但这似乎并不像预期的那样有效

只需使用
运算符库即可。我会的。我是个新手
bool cmp(const pair<string, long> &p1, const pair<string, long> &p2)
{
    if(p1.second!=p2.second)
        return p1.second < p2.second;
    return p1.first < p2.first;
}
return strcmp(p1.first.c_str(), p2.first.c_str()) < 0;