Cómo ordenar una matriz de vectores de pares, es decir, vector <par v [N], en C ++

#include
#include
#include
usando el espacio de nombres estándar;

// necesitas decidir qué significa cuando uno de tu par es menor (o graiter) que otro
//ejemplo:
bool pair_less (const pair lhs, const pair rhs) {
return lhs.first <rhs.first;
}

int main (int argc, char * argv [])
{
vector <par > vector_pairs;
vector_pairs.push_back (make_pair (5,2));
vector_pairs.push_back (make_pair (3,5));
vector_pairs.push_back (make_pair (1,7));
sort (vector_pairs.begin (), vector_pairs.end (), pair_less);
for (int i = 0; i <vector_pairs.size (); ++ i) {
cout << vector_pairs [i] .first << '' << vector_pairs [i] .second << endl;
}

cout << endl;
sistema (“pausa”);
devuelve 0;
}

El primer intento de entender la pregunta ha fallado.

Puede ser que necesite hacer algo como esto:

#include
#include
#include
usando el espacio de nombres estándar;

int main (int argc, char * argv [])
{
const size_t
filas = 3,
columnas = 5;

par a [filas] [columnas] =
{
{par (3,4), par (1,5), par (2,7), par (4,5), par (4,5)},
{par (13,4), par (21,5), par (25,7), par (14,5), par (41,5)},
{par (31,4), par (11,5), par (21,7), par (41,5), par (24,5)}
};

vector <par > v1 (a [0], (a [0] + columnas));
vector <par > v2 (a [1], a [1] + columnas);
vector <par > v3 (a [2], a [2] + columnas);
vector <par > lolovec [filas] = {v1, v2, v3};

para (size_t i = 0; i <filas; ++ i) {
sort (lolovec [i] .begin (), lolovec [i] .end ());
}
sort (lolovec, lolovec + filas);
para (size_t i = 0; i <filas; ++ i) {
for (size_t j = 0; j <lolovec [i] .size (); ++ j) {
cout << lolovec [i] [j] .first << '' << lolovec [i] [j] .second << '\ t';
}
cout << endl;
}
cout << endl;
sistema (“pausa”);
devuelve 0;
}

Todos los vectores en la matriz tienen el mismo tamaño, pero creo que no tiene importancia.