Introducción
En este laboratorio, aprenderá a ordenar cadenas según su longitud utilizando un método de clasificación personalizado en el lenguaje de programación C++. También aprenderá a implementar la lógica de clasificación personalizada y a ordenar los elementos de un conjunto no ordenado en un orden específico.
Crear un nuevo archivo
El primer paso es crear un nuevo archivo. Abra una terminal y vaya al directorio ~/proyecto. Cree un nuevo archivo llamado main.cpp usando su editor de texto preferido.
cd ~/proyecto
touch main.cpp
Escribir el código
Agregue el siguiente código al archivo main.cpp. Este código ordenará un conjunto de cadenas según su longitud.
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
//Devuelve true si la primera cadena es de mayor longitud que la segunda
bool cmp(string x, string y)
{
int n = x.length();
int m = y.length();
if (n > m)
return true;
else
return false;
}
//Función para imprimir los elementos del conjunto no ordenado usando un iterador
void show(unordered_set<string> s)
{
//Declarando un iterador para iterar a través del conjunto no ordenado
unordered_set<string>::iterator i;
for (i = s.begin(); i!= s.end(); i++)
{
cout << *i << " "; //Accediendo a los elementos del conjunto no ordenado usando * ya que i almacena la dirección de cada elemento
}
cout << endl;
}
int main()
{
cout << "\n\nBienvenido a LabEx :-)\n\n\n";
cout << " ===== Programa para demostrar la clasificación de cadenas en función de la longitud, en CPP ===== \n\n\n\n";
cout << " *** El conjunto no ordenado automaticamente elimina los elementos duplicados y mantiene un orden aleatorio. *** \n\n";
cout << " *** Este orden aleatorio depende de la función hash que se utiliza internamente. *** \n\n";
cout << " *** El conjunto no ordenado se puede ordenar copiando sus elementos a un Vector. *** \n\n";
//Declaración del conjunto no ordenado (Conjunto no ordenado de cadenas)
unordered_set<string> s;
//Llenando los elementos usando el método insert()
cout << "\n\nLlenando el conjunto no ordenado con cadenas en orden aleatorio."; //A diferencia del Conjunto, esto no se ordena automáticamente
s.insert("Study");
s.insert("Tonight");
s.insert("Aditya");
s.insert("Abhishek");
s.insert("C++");
s.insert("Hi");
cout << "\n\nLos elementos del conjunto no ordenado antes de la clasificación son:\n ";
show(s);
//Declarando un vector e inicializándolo con los elementos del conjunto no ordenado
vector<string> v(s.begin(), s.end());
//Ordenando los elementos del vector en orden descendente de su longitud usando un comparador personalizado
sort(v.begin(), v.end(), cmp);
cout << "\n\nLos elementos del conjunto no ordenado después de la clasificación en orden descendente de su longitud usando un comparador personalizado son: \n";
//Declarando un iterador para iterar a través del vector
vector<string>::iterator it;
for (it = v.begin(); it!= v.end(); it++)
{
cout << *it << " "; //Accediendo a los elementos del vector usando * ya que i almacena la dirección de cada elemento
}
cout << "\n\n\n";
return 0;
}
Compilar y ejecutar el código
Para compilar este código, vaya al directorio ~/proyecto en la terminal y ejecute el siguiente comando:
g++ main.cpp -o main && ./main
La salida mostrará la lista ordenada de cadenas.
Resumen
En este laboratorio, aprendiste a ordenar un conjunto no ordenado de cadenas escribiendo un método de clasificación personalizado en el lenguaje de programación C++. También aprendiste a implementar la lógica de clasificación personalizada y a ordenar los elementos de un conjunto no ordenado en un orden específico. Este conocimiento se puede aplicar a una amplia variedad de proyectos de programación, lo que te ayudará a crear código eficiente y fácil de leer.



