为什么排序适用于'小于'比较而不是与“等于或等于”?

时间:2018-06-09 18:48:57

标签: c++ arrays sorting stl

我正在尝试使用sort对vector<vector<int>>数组进行排序,如下所示:

sort(ed.begin(),ed.end(),[](vector<int> a,vector<int> b){return a[2]<=b[2];}  

这里的ed是我的数组(数组),这个数组中的每个元素的大小都是3.所以我对有关最后一个元素的三元组进行了排序。但是这会在这一行代码中产生分段错误。我试图研究这个,我能找到的是关于比较函数所需的严格弱排序的东西。所以我随后将sort语句改为:

sort(ed.begin(),ed.end(),[](vector<int> a,vector<int> b){return a[2]<b[2];})  

基本上我只是从比较函数中删除了等号。这很有效。 所以我想知道为什么会有效,前一个没有。

为了让您了解完整的图片,我正在努力实施kruskal&#34; ed&#34;是一个边的数组。每条边都是三元组<from,to,weight>

0 个答案:

没有答案