Heim > Artikel > Backend-Entwicklung > Entfernen Sie Vorkommen aller Zeichen aus der Zeichenfolge mithilfe von STL
STL steht im Grunde für Standard Template Library, eine Sammlung vorgefertigter Codes, die häufig in Datenstrukturen und Algorithmen verwendet werden. Es wurde Anfang der 1990er Jahre von Ming Lee und Alexander Stepanov entwickelt.
Es besteht hauptsächlich aus drei Komponenten: Container, Algorithmus und Iterator. Container sind Objekte, die Daten speichern und bearbeiten, z. B. Listen, Vektoren, Mengen, Karten und Stapel. Algorithmen sind Funktionen, die mit in Containern gespeicherten Daten arbeiten, z. B. Daten suchen, sortieren und bearbeiten. Iteratoren sind Objekte, die die Navigation durch die Elemente eines Containers erleichtern.
STL ist zu einem wichtigen Bestandteil der Wettbewerbsprogrammierung geworden und bietet außerdem effizienten und robusten Code.
#include <iostream> #include <string> using namespace std; int main() { string a = "Hello, world!"; cout << a << endl; return 0; }
Hello, world!
Deklarieren Sie eine Zeichenfolge und Zeichen, die entfernt werden sollen. Speichern Sie sie dann in Variablen.
Durchlaufen Sie jedes Zeichen in der Zeichenfolge.
Überprüfen Sie, ob das aktuelle Zeichen mit dem Zeichen übereinstimmt, das Sie löschen möchten.
Wiederholen Sie die beiden oben genannten Vorgänge, bis alle Zeichen entfernt sind.
Drucken Sie die geänderte Zeichenfolge aus.
Methode 1 – Verwenden Sie die Funktionen „remove()“ und „erase()“.
Methode 2 – Verwenden Sie die Funktionen „remove_if()“ und „erase()“.
Methode 3 – Verwenden Sie die Funktionen find() und erase().
Es gibt mehrere Möglichkeiten, alle Vorkommen von Zeichen mithilfe von STL aus einer Zeichenfolge zu entfernen. Nachfolgend sind einige mögliche Methoden aufgeführt -
Remove() ist in der Header-Datei definiert. Der Wert wird aus dem Bereich entfernt, in diesem Fall ist es das Zeichen, das Sie entfernen möchten, und der Iterator kehrt zum neuen Ende der Sequenz zurück. 算法>
Diese Funktion verschiebt die Elemente nur an das Ende des Bereichs und stellt einen Iterator für das neue Ende bereit. Sie entfernt sie nicht wirklich aus dem Container.
Die FunktionErase() in C++ STL wird zum Löschen von Elementen aus einem Container verwendet. Abhängig vom Containertyp (Vektor oder String) werden zwei Parameter benötigt.
Die Funktionerase() löscht „count“ Zeichen aus dem Startindex. Der erste Parameter ist ein optionaler Index, standardmäßig gleich 0. Wenn „count“ nicht angegeben ist, werden alle Zeichen im Container vom Index bis zum Ende der Zeichenfolge entfernt.
#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()“ in C++ STL ähnelt der Funktion „remove()“, entfernt jedoch nur Zeichen aus dem Container, wenn die angegebenen Bedingungen erfüllt sind. Die Methode
remove_if() entfernt alle Elemente im Bereich [first, last), wenn die Bedingung p erfüllt ist. Das unäre Prädikat p ist eine Funktion oder ein Funktionsobjekt, das ein einzelnes Argument von einem Element des Containers übernimmt und einen booleschen Wert zurückgibt, der angibt, ob das Element entfernt werden soll.
Beispiel#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!
Bei dieser Methode verwenden Sie eine for-Schleife, um die gesamte Zeichenfolge zu durchlaufen und jedes Zeichen einzeln zu prüfen, um festzustellen, ob es mit dem Zeichen übereinstimmt, das entfernt werden muss. Wenn es eine Übereinstimmung gibt, wird das Zeichen aus der Zeichenfolge entfernt; andernfalls wird mit dem nächsten fortgefahren.
Beispiel
#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!
Die Verwendung von STL in C++ bietet viele Vorteile, darunter Benutzerfreundlichkeit, Effizienz und Wiederverwendung. Insgesamt handelt es sich um eine leistungsstarke Bibliothek, die dabei hilft, zuverlässigen und effizienten Code zu generieren.
Das obige ist der detaillierte Inhalt vonEntfernen Sie Vorkommen aller Zeichen aus der Zeichenfolge mithilfe von STL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!