我正在尝试使用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>
。