Cómo usar la librería Chrono en C++
Concoe a fondo los principales usos de Chrono de C++ y cómo funciona con unos ejemplos prácticos,.
Conoce las utilidades de la función Sort en C++ con los ejemplos prácticos que te proponemos y por qué usar la función sort es una opción muy interesante.
Tabla de contenidos
La función sort
la puedes encontrar en la librería estándar de C++ (STL) para hacer una orden de comparación. Vamos a ver, por qué usar la funcion sort es una opción muy interesante.
Imaginemos que tenemos un contenedor vector y unos datos dentro del mismo.
#include <iostream>
#include <algorithm>
#include <vector>
int main()
{
std::vector<int> our_vector{3, 5, 4, 1, 2};
getchar();
return = 0;
}
De esta forma, tener que iterar dentro del vector para que los datos estén ordenados de cualquier forma, es un poco pesado de hacer.
Una vez que C++ incluyó Sort, nos permite hacer lo siguiente para acceder a los datos del vector y ordenarlos de menor a mayor.
#include <iostream>
#include <algorithm>
#include <vector>
int main()
{
std::vector<int> our_vector{3, 5, 4, 1, 2};
std::sort(our_vector.begin(), our_vector.end());
for (auto& elem : our_vector)
std::cout << elem << “ – “ << std::endl;
getchar();
return = 0;
}
Si quisiéramos ordenarlos de mayor a menor, podríamos utilizar la función que está en functional, de esta forma:
#include <iostream>
#include <algorithm>
#include <vector>
#include <functional>
int main()
{
std::vector<int> our_vector{3, 5, 4, 1, 2};
std::sort(our_vector.begin(), our_vector.end(), std::greater<int>());
for (auto& elem : our_vector)
std::cout << elem << “ – “ << std::endl;
getchar();
return = 0;
}
En este caso se le está pasando una función de comparación para que devuelva el mayor, si lo ejecutamos nos imprime los datos ordenados de mayor a menor.
Para que nos los muestre ordenados al revés, es decir, de menor a mayor, lo haríamos de la siguiente forma:
#include <iostream>
#include <algorithm>
#include <vector>
#include <functional>
int main()
{
std::vector<int> our_vector{3, 5, 4, 1, 2};
std::sort(our_vector.begin(), our_vector.end());
for (auto& elem : our_vector)
std::cout << elem << “ – “ << std::endl;
getchar();
return = 0;
}
Compilamos y ejecutamos el código anterior, y vemos como imprime los valores al revés, de menor a mayor.
Además podemos crear una función de comparación para que devuelva el mayor, que haremos según se indica en la documentación oficial. Esta función nos va a devolver un booleano, que tenga dos parámetros del tipo correspondiente.
#include <iostream>
#include <algorithm>
#include <vector>
#include <functional>
bool comp (const int& a, const int& b)
{
return a > b;
}
int main()
{
std::vector<int> our_vector{3, 5, 4, 1, 2};
std::sort(our_vector.begin(), our_vector.end(), &comp);
for (auto& elem : our_vector)
std::cout << elem << “ – “ << std::endl;
getchar();
return = 0;
}
Ejecutamos el código y nos devuelve los datos ordenados de mayor a menor.
También podemos hacer lo siguiente:
#include <iostream>
#include <algorithm>
#include <vector>
#include <functional>
bool comp (const int& a, const int& b)
{
if (a == 1)
return false;
if (b ==1)
return true;
return a < b;
}
int main()
{
std::vector<int> our_vector{3, 5, 4, 1, 2};
std::sort(our_vector.begin(), our_vector.end(), &comp);
for (auto& elem : our_vector)
std::cout << elem << “ – “ << std::endl;
getchar();
return = 0;
}
Al ejecutarlo nos muestra el valor menor al final.
Como hemos visto, Sort sirve para hacer ordenaciones, aunque haya diferentes contenedores, como set
o map
, que también permiten ordenación.
En los casos en los que tenemos un contenedor secuencial y queremos ordenarlo, incluso aunque que no sea un contenedor de C++, ya que podemos hacerlo nosotros, colocando el inicio y el final y haciendo la función de comparación, algo que es muy útil y esta es la funcionalidad básica de Sort.
Sigue aprendiendo a diseñar y asimilar patrones e interfaces para tus programas con este Curso de Patrones de diseño e interfaces en C++.
Recuerda que puedes comenzar este curso con tu suscripción de OpenWebinars. Si todavía no estás suscrito, aprovecha para hacerlo ahora.
También te puede interesar
Concoe a fondo los principales usos de Chrono de C++ y cómo funciona con unos ejemplos prácticos,.
Aprende a crear tus propios thread pool en C++, primero de forma teórica y después con un caso práctico.
Aprende a diseñar y asimilar patrones e interfaces para tus programas en C++ con la librería STL. .