Maison > Article > développement back-end > Supprimer les occurrences de tous les caractères de la chaîne à l'aide de STL
STL signifie essentiellement Standard Template Library, qui est une collection de codes pré-écrits fréquemment utilisés dans les structures de données et les algorithmes. Il a été développé par Ming Lee et Alexander Stepanov au début des années 1990.
Il se compose principalement de trois composants : conteneur, algorithme et itérateur. Les conteneurs sont des objets qui stockent et manipulent des données, telles que des listes, des vecteurs, des ensembles, des cartes et des piles. Les algorithmes sont des fonctions qui opèrent sur les données stockées dans des conteneurs, telles que la recherche, le tri et la manipulation de données. Les itérateurs sont des objets qui facilitent la navigation dans les éléments d'un conteneur.
STL est devenu un élément important de la programmation compétitive et fournit également un code efficace et robuste.
#include <iostream> #include <string> using namespace std; int main() { string a = "Hello, world!"; cout << a << endl; return 0; }
Hello, world!
Déclarez une chaîne et des caractères à supprimer. Stockez-les ensuite dans des variables.
Parcourez chaque caractère de la chaîne.
Vérifiez si le caractère actuel correspond au caractère que vous souhaitez supprimer.
Répétez les deux processus ci-dessus jusqu'à ce que toutes les occurrences de caractères soient supprimées.
Imprimez la chaîne modifiée.
Méthode 1 - Utilisez les fonctions Remove() et Eraser().
Méthode 2 - Utilisez les fonctions Remove_if() et Eraser().
Méthode 3 - Utilisez les fonctions find() et Eraser().
Il existe plusieurs façons de supprimer toutes les occurrences de caractères d'une chaîne à l'aide de STL. Vous trouverez ci-dessous quelques méthodes possibles -
Remove() est défini dans le fichier d'en-tête. Il supprime la valeur de la plage, dans ce cas ce sera le caractère que vous souhaitez supprimer, et renvoie l'itérateur à la nouvelle fin de la séquence. 算法>
Cette fonction déplace uniquement les éléments vers la fin de la plage et fournit un itérateur pour la nouvelle fin, elle ne les supprime pas réellement du conteneur.
La fonctionErase() en C++ STL est utilisée pour supprimer des éléments d'un conteneur. Il prend deux paramètres, selon le type de conteneur (vecteur ou chaîne).
La fonctionerase() supprime les caractères "count" de l'index de départ. Le premier paramètre est un index optionnel, égal à 0 par défaut. Si "count" n'est pas spécifié, tous les caractères du conteneur seront supprimés de l'index jusqu'à la fin de la chaîne.
#include <iostream> #include <string> #include <algorithm> using namespace std; int main() { string str = "hello world!"; char ch = 'l'; // Use remove() to remove all occurrences of the character. str.erase(remove(str.begin(), str.end(), ch), str.end()); cout << str << endl; return 0; }
heo word!
'remove_if()' en C++ STL est similaire à la fonction remove(), mais elle ne supprime les caractères du conteneur que lorsque la condition spécifiée est remplie. La méthode
remove_if() supprime tous les éléments de la plage [first, last) si la condition p est remplie. Le prédicat unaire p est une fonction ou un objet fonction qui prend un seul argument d'un élément du conteneur et renvoie une valeur booléenne indiquant si l'élément doit être supprimé.
Exemple#include <iostream> #include <string> #include <algorithm> using namespace std; int main() { string str = "hello world!"; char ch = 'l'; str.erase(remove_if(str.begin(), str.end(), [=](char c) { return c == ch; }), str.end()); cout << str << endl; return 0; }
heo word!
Dans cette méthode, utilisez une boucle for pour parcourir toute la chaîne, en vérifiant chaque caractère individuellement pour voir s'il correspond au caractère qui doit être supprimé. S'il y a une correspondance, le caractère est supprimé de la chaîne ; sinon, il passe au suivant.
Exemple
#include <iostream> #include <string> using namespace std; int main() { string str = "hello world!"; char ch = 'o'; // Use a loop to remove all occurrences of the character for (int i = 0; i < str.length(); ) { if (str[i] == ch) { str.erase(i, 1); } else { ++i; } } cout << str << endl; return 0; }
hell wrld!
L'utilisation de STL en C++ présente de nombreux avantages, notamment la facilité d'utilisation, l'efficacité et la réutilisation. Dans l’ensemble, il s’agit d’une bibliothèque puissante qui permet de générer du code fiable et efficace.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!