You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++使用sort对vector<vector<int>>按第二元素降序排序出错如何解决

问题错误点说明
  • 比较函数的参数类型错误:sort遍历vector<vector<int>>类型的容器时,每次传入比较函数的是单个一维子vector,类型为vector<int>,你写的参数是二维vector<vector<int>>类型,还额外加了一层[0]取第一个元素,逻辑完全不符合排序要求。
  • 优化建议:比较函数参数最好加const修饰,既避免意外修改元素值,也符合C++标准对排序比较函数的入参要求,避免部分编译器报错。
修正后的完整代码
static bool compareInterval(const vector<int>& v1, const vector<int>& v2)
{
    // 直接比较两个一维子vector的下标1元素,降序排列
    return v1[1] > v2[1];
}

sort(boxTypes.begin(), boxTypes.end(), compareInterval);

运行上述代码就能得到你预期的[[5,10],[3,9],[4,7],[2,5]]排序结果。

内容的提问来源于stack exchange,提问作者Turing101

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 20:15:05