Introduction
Dans ce laboratoire, vous allez apprendre à trier des chaînes de caractères en fonction de leur longueur à l'aide d'une méthode de tri personnalisée en langage de programmation C++. Vous allez également apprendre à implémenter une logique de tri personnalisée et à ordonner les éléments d'un ensemble non ordonné dans un ordre spécifique.
Créer un nouveau fichier
La première étape consiste à créer un nouveau fichier. Ouvrez un terminal et accédez au répertoire ~/project. Créez un nouveau fichier appelé main.cpp à l'aide de votre éditeur de texte préféré.
cd ~/project
touch main.cpp
Écrire le code
Ajoutez le code suivant au fichier main.cpp. Ce code triera un ensemble de chaînes de caractères en fonction de leur longueur.
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
//Renvoie vrai si la première chaîne est de longueur supérieure à la seconde
bool cmp(string x, string y)
{
int n = x.length();
int m = y.length();
if (n > m)
return true;
else
return false;
}
//Fonction pour afficher les éléments de l'ensemble non ordonné à l'aide d'un itérateur
void show(unordered_set<string> s)
{
//Déclaration d'un itérateur pour parcourir l'ensemble non ordonné
unordered_set<string>::iterator i;
for (i = s.begin(); i!= s.end(); i++)
{
cout << *i << " "; //Accès aux éléments de l'ensemble non ordonné en utilisant * car i stocke l'adresse de chaque élément
}
cout << endl;
}
int main()
{
cout << "\n\nBienvenue à LabEx :-)\n\n\n";
cout << " ===== Programme pour démontrer le tri des chaînes de caractères en fonction de leur longueur, en CPP ===== \n\n\n\n";
cout << " *** L'ensemble non ordonné supprime automatiquement les éléments dupliqués et maintient un ordre aléatoire. *** \n\n";
cout << " *** Cet ordre aléatoire dépend de la fonction de hachage utilisée en interne. *** \n\n";
cout << " *** L'ensemble non ordonné peut être trié en copiant ses éléments dans un vecteur. *** \n\n";
//Déclaration de l'ensemble non ordonné (ensemble non ordonné de chaînes de caractères)
unordered_set<string> s;
//Remplissage des éléments en utilisant la méthode insert()
cout << "\n\nRemplissage de l'ensemble non ordonné avec des chaînes de caractères dans un ordre aléatoire."; //Contrairement à l'ensemble, cela n'est pas trié automatiquement
s.insert("Study");
s.insert("Tonight");
s.insert("Aditya");
s.insert("Abhishek");
s.insert("C++");
s.insert("Hi");
cout << "\n\nLes éléments de l'ensemble non ordonné avant le tri sont :\n ";
show(s);
//Déclaration d'un vecteur et initialisation avec les éléments de l'ensemble non ordonné
vector<string> v(s.begin(), s.end());
//Tri des éléments du vecteur par ordre décroissant de leur longueur à l'aide d'un comparateur personnalisé
sort(v.begin(), v.end(), cmp);
cout << "\n\nLes éléments de l'ensemble non ordonné après le tri par ordre décroissant de leur longueur à l'aide d'un comparateur personnalisé sont : \n";
//Déclaration d'un itérateur pour parcourir le vecteur
vector<string>::iterator it;
for (it = v.begin(); it!= v.end(); it++)
{
cout << *it << " "; //Accès aux éléments du vecteur en utilisant * car i stocke l'adresse de chaque élément
}
cout << "\n\n\n";
return 0;
}
Compiler et exécuter le code
Pour compiler ce code, accédez au répertoire ~/project dans le terminal et exécutez la commande suivante :
g++ main.cpp -o main && ./main
La sortie vous montrera la liste triée des chaînes de caractères.
Résumé
Dans ce laboratoire, vous avez appris à trier un ensemble non ordonné de chaînes de caractères en écrivant une méthode de tri personnalisée en langage de programmation C++. Vous avez également appris à implémenter une logique de tri personnalisée et à ordonner les éléments d'un ensemble non ordonné dans un ordre spécifique. Cette connaissance peut être appliquée à une large gamme de projets de programmation, vous aidant à créer du code efficace et facile à lire.



