Dado un vector de arreglos, la tarea es ordenarlos.
Ejemplos:
Entrada: [[1, 2, 3], [10, 20, 30], [30, 60, 90], [10, 20, 10]]
Salida: [[1, 2, 3], [10, 20 , 10], [10, 20, 30], [30, 60, 90]]Entrada: [[7, 2, 9], [5, 20, 11], [6, 16, 19]]
Salida: [[5, 20, 11], [6, 16, 19], [7, 2 , 9]]
Acercarse:
Para ordenar el vector de arreglos usando el sort() integrado en C++ STL , se necesita una plantilla de arreglo definida en una biblioteca boost para almacenar el vector de arreglos.
std:: vector<std:: array >
donde, std::array es un contenedor que encapsula arrays de tamaño fijo.
En este problema, la función sort() toma dos argumentos primero (posición inicial del vector) y segundo (posición final del vector) para ordenar un vector de arrays (elementos con acceso aleatorio). A continuación se muestra un programa simple para mostrar el funcionamiento de sort().
CPP
// C++ program to sort the vector // of array by sort() function // using STL in c++ #include <algorithm> #include <array> #include <iostream> #include <vector> using namespace std; #define N 3 // Function to print vector of arrays void print(vector<array<int, N> > vect) { // Displaying the vector of arrays // ranged for loop is supported for (array<int, N> i : vect) { for (auto x : i) cout << x << " "; cout << endl; } } // Driver code int main() { // std::array is a container that // encapsulates fixed size arrays. vector<array<int, N> > vect; vect.push_back({ 1, 2, 3 }); vect.push_back({ 10, 20, 30 }); vect.push_back({ 30, 60, 90 }); vect.push_back({ 10, 20, 10 }); cout << "Vector of arrays" << " before sorting: \n"; print(vect); // Sorting the vector using built-in sort() // defined in algorithm header in C++ STL sort(vect.begin(), vect.end()); cout << "Vector of arrays" << " after sorting: \n"; print(vect); // End of program return 0; }
Vector of arrays before sorting: 1 2 3 10 20 30 30 60 90 10 20 10 Vector of arrays after sorting: 1 2 3 10 20 10 10 20 30 30 60 90