xumingyukou 2022-03-02 09:44 采纳率: 100%
浏览 22
已结题

vector<vector> 排序

想要利用sort函数实现一组不同长度的vector的排序,由大到小

static bool cmp(const vector<int>& A, const vector<int>& B)
{
    int min;
    if (A.size() <= B.size())
        min = A.size();
    else
        min = B.size();
    int i = 0;
    for (i; i < min; i++)
    {
        if (A[i] != B[i])
        {
            return A[i] > B[i];
        }
        
    }
    
}

但编译器报错invalid comparator

  • 写回答

3条回答 默认 最新

  • CSDN专家-link 2022-03-02 09:51
    关注

    你这个cmp在哪里调用呢?
    vector的sort函数调用的比较函数,参数应该是vector的元素类型,不是vector
    你这个编译器报错指向哪一行?
    函数也有问题,如果A和B的前min个元素值都相等,你这函数就不执行return语句啦
    所以在for循环后面应该还要加上一个return false;表明A比B小

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
    xumingyukou 2022-03-02 10:01

    我的错误应该就是当两个vector完全相同的时候会报错

    回复
    xumingyukou 2022-03-02 10:03

    谢谢您啦

    回复
查看更多回答(2条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 3月9日
  • 已采纳回答 3月2日
  • 创建了问题 3月2日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部