Introdução
Neste laboratório, você aprenderá como ordenar strings com base no comprimento usando um método de ordenação personalizado na linguagem de programação C++. Você também aprenderá como implementar lógica de ordenação personalizada e ordenar os elementos de um conjunto não ordenado em uma ordem específica.
Criar um novo arquivo
O primeiro passo é criar um novo arquivo. Abra um terminal e navegue até o diretório ~/project. Crie um novo arquivo chamado main.cpp usando seu editor de texto preferido.
cd ~/project
touch main.cpp
Escrever o código
Adicione o seguinte código ao arquivo main.cpp. Este código irá ordenar um conjunto de strings com base em seus comprimentos.
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
//Retorna true se a primeira string tiver um comprimento maior que a segunda
bool cmp(string x, string y)
{
int n = x.length();
int m = y.length();
if (n > m)
return true;
else
return false;
}
//Função para imprimir os elementos do conjunto não ordenado usando um iterador
void show(unordered_set<string> s)
{
//declarando um iterador para iterar através do conjunto não ordenado
unordered_set<string>::iterator i;
for (i = s.begin(); i != s.end(); i++)
{
cout << *i << " "; //acessando os elementos do conjunto não ordenado usando * pois i armazena o endereço de cada elemento
}
cout << endl;
}
int main()
{
cout << "\n\nBem-vindo ao LabEx :-)\n\n\n";
cout << " ===== Programa para demonstrar a Ordenação de Strings com base no comprimento, em CPP ===== \n\n\n\n";
cout << " *** Unordered Set remove automaticamente os elementos duplicados e mantém uma ordenação aleatória. *** \n\n";
cout << " *** Esta ordenação aleatória depende da função hash que é usada internamente. *** \n\n";
cout << " *** Unordered set pode ser ordenado copiando seus elementos para um Vector. *** \n\n";
//Declaração do Unordered Set (Unordered Set de strings)
unordered_set<string> s;
//Preenchendo os elementos usando o método insert().
cout << "\n\nPreenchendo o Unordered Set com strings em ordem aleatória."; //Ao contrário do Set, este não é automaticamente ordenado
s.insert("Study");
s.insert("Tonight");
s.insert("Aditya");
s.insert("Abhishek");
s.insert("C++");
s.insert("Hi");
cout << "\n\nOs elementos do Unordered Set antes da ordenação são:\n ";
show(s);
//Declarando um vetor e inicializando-o com os elementos do conjunto não ordenado
vector<string> v(s.begin(), s.end());
//Ordenando os elementos do vetor em ordem decrescente de seus comprimentos usando um comparador personalizado
sort(v.begin(), v.end(), cmp);
cout << "\n\nOs elementos do Unordered Set após a ordenação em Ordem decrescente de seus comprimentos usando um comparador personalizado são: \n";
//declarando um iterador para iterar através do vetor
vector<string>::iterator it;
for (it = v.begin(); it != v.end(); it++)
{
cout << *it << " "; //acessando os elementos do vetor usando * pois i armazena o endereço de cada elemento
}
cout << "\n\n\n";
return 0;
}
Compilar e executar o código
Para compilar este código, navegue até o diretório ~/project no terminal e execute o seguinte comando:
g++ main.cpp -o main && ./main
A saída mostrará a lista de strings ordenada.
Resumo
Neste laboratório, você aprendeu como ordenar um conjunto não ordenado de strings, escrevendo um método de ordenação personalizado na linguagem de programação C++. Você também aprendeu como implementar lógica de ordenação personalizada e ordenar os elementos de um conjunto não ordenado em uma ordem específica. Este conhecimento pode ser aplicado a uma ampla gama de projetos de programação, ajudando você a criar código eficiente e fácil de ler.



