¿Cómo ordenar una matriz 2d de acuerdo con la segunda columna usando la función de clasificación stl?

¿Cómo ordenar una matriz 2d de acuerdo con la segunda columna usando la función de clasificación stl?

Por ejemplo

Si tenemos una matriz a [5] [2] y queremos ordenar de acuerdo con la entrada ar [i] [1], ¿cómo lo hacemos usando la función de clasificación stl? ¿Entiendo que tenemos que usar una función booleana para pasar como tercer parámetro pero no puedo diseñar la función booleana adecuada?

La ordenación stl requiere que el valor del iterador se pase como argumentos. Si desea usar la función de clasificación, tendrá que comstackr en c ++ 11 y usar la matriz stl para almacenar la matriz. El código es el siguiente

#include "bits/stdc++.h" using namespace std; bool compare( array a, array b) { return a[0], 5> ar1; for(i=0;i<5;i++) { for(j=0;j<2;j++) { cin>>ar1[i][j]; } } cout<<"\n earlier it is \n"; for(i=0;i<5;i++) { for(j=0;j<2;j++) { cout< 

La comstackción en c ++ 11 se puede hacer con g ++ -std = c ++ 11 filename.cpp -o. En caso de que no quiera usar c ++ 11 o usar el stl "array", use la función std :: qsort. Con esto puedes usar la forma tradicional de definir los arreglos como int a [10] [2]. El código es el siguiente

 #include "bits/stdc++.h" using namespace std; int compare( const void *aa, const void *bb) { int *a=(int *)aa; int *b=(int *)bb; if (a[0]>a[i][j]; } //cout<<"\n"; } cout<<"\n\n"; qsort(a,5,sizeof(a[0]),compare); for(int i=0;i<5;i++) { for(int j=0;j<2;j++) { cout< 

Haga su propia función de comparación.

Consulte la guía para principiantes de std :: sort (). http://www.cplusplus.com/articles/NhA0RXSz/