Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/159.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在保持相对顺序的同时对向量进行排序 我一直试图实现一个C++程序,它在保持联系的情况下,以升序排序向量的向量(例如,如果向量A在向量B之前,那么A在B之前保持)。这就是我现在拥有的代码。任何提示都将不胜感激_C++_Sorting_Vector - Fatal编程技术网

在保持相对顺序的同时对向量进行排序 我一直试图实现一个C++程序,它在保持联系的情况下,以升序排序向量的向量(例如,如果向量A在向量B之前,那么A在B之前保持)。这就是我现在拥有的代码。任何提示都将不胜感激

在保持相对顺序的同时对向量进行排序 我一直试图实现一个C++程序,它在保持联系的情况下,以升序排序向量的向量(例如,如果向量A在向量B之前,那么A在B之前保持)。这就是我现在拥有的代码。任何提示都将不胜感激,c++,sorting,vector,C++,Sorting,Vector,编辑:顺便说一下,c是您排序的列 排序(v.begin()、v.end()、[=](向量a、向量b){ 如果(a[c]==b[c]){ int d1=find(v.begin(),v.end(),a)-v.begin(); int d2=find(v.begin(),v.end(),b)-v.begin(); 返回d1

编辑:顺便说一下,c是您排序的列

排序(v.begin()、v.end()、[=](向量a、向量b){
如果(a[c]==b[c]){
int d1=find(v.begin(),v.end(),a)-v.begin();
int d2=find(v.begin(),v.end(),b)-v.begin();
返回d1
只需使用并提供排序依据的标准:

std::stable_sort(v.begin(), v.end(), [=] (vector<int> &a, vector<int> &b) {
      return a[c] < b[c];
});
std::stable_排序(v.begin(),v.end(),[=](向量&a,向量&b){
返回a[c]
按非降序排列[第一、最后]范围内的元素。保证保留等效元素的顺序。


重点是我的

这里的
c
是什么?你需要对向量的向量进行排序的专栏哦哇,我没有意识到有一个内置函数,谢谢lot@SamLiu在你得到答案后删除你的问题并不是表示感谢的最好方式。等一下,我的程序无法编译,可能是因为出错了或者在“[=]”部分。你知道为什么吗?对不起,我是这个网站的新手。我觉得这是个愚蠢的问题。lambda应该通过
const ref
[=](const std::vector&a,const std::vector&b){返回a[c]