C++ <list> remove-Funktion
removewird in list verwendet, umalle Elemente zu entfernen, die dem angegebenen Wert entsprechenist eine Funktion, die eine hocheffiziente, für verkettete Listen einzigartige Operation ist.
removeist eine Memberfunktion der Containerklasse, die verwendet wird, um alle Elemente in der verketteten Liste zu löschen, die dem angegebenen Wert entsprechen.
In der Liste,removedie Zeitkomplexität ist O(n).
Wortdefinitionen: removebedeutet "remove", d. h. alle Elemente löschen, die dem angegebenen Wert entsprechen.
Grundlegende Syntax und Parameter
Syntaxformat
void remove(const T& value);
Parameterbeschreibung
- Parameter:
value- der Wert des zu löschenden Elements
Funktionsbeschreibung
- Rückgabewert:
void(Kein Rückgabewert). - Wirkung: Alle Elemente in der verketteten Liste löschen, die value entsprechen.
Beispiel
Beispiel 1: Alle Elemente löschen, die gleich dem angegebenen Wert sind
Beispiel
#include <iostream>
#include <list>
int main() {
std::list<int> numbers = {1, 2, 3, 2, 4, 2, 5};
std::cout << "Original: ";
for(int n : numbers) std::cout << n << " ";
std::cout << std::endl;
// Alle Elemente löschen, die gleich 2 sind
numbers.remove(2);
std::cout << "Nach remove(2): ";
for(int n : numbers) std::cout << n << " ";
std::cout << std::endl;
return 0;
}
#include <list>
int main() {
std::list<int> numbers = {1, 2, 3, 2, 4, 2, 5};
std::cout << "Original: ";
for(int n : numbers) std::cout << n << " ";
std::cout << std::endl;
// Alle Elemente löschen, die gleich 2 sind
numbers.remove(2);
std::cout << "Nach remove(2): ";
for(int n : numbers) std::cout << n << " ";
std::cout << std::endl;
return 0;
}
Erwartetes Ausführungsergebnis:
原始: 1 2 3 2 4 2 5 remove(2) 后: 1 3 4 5
Beispiel 2: Einen String löschen
Beispiel
#include <iostream>
#include <list>
#include <string>
int main() {
std::list<std::string> words = {"apple", "banana", "apple", "cherry", "apple"};
std::cout << "Original: ";
for(const auto& w : words) std::cout << w << " ";
std::cout << std::endl;
words.remove("apple");
std::cout << "remove(\"apple\") Danach: ";
for(const auto& w : words) std::cout << w << " ";
std::cout << std::endl;
return 0;
}
#include <list>
#include <string>
int main() {
std::list<std::string> words = {"apple", "banana", "apple", "cherry", "apple"};
std::cout << "Original: ";
for(const auto& w : words) std::cout << w << " ";
std::cout << std::endl;
words.remove("apple");
std::cout << "remove(\"apple\") Danach: ";
for(const auto& w : words) std::cout << w << " ";
std::cout << std::endl;
return 0;
}
Erwartetes Ausführungsergebnis:
原始: apple banana apple cherry apple
remove("apple") 后: banana cherry
Weitere Erweiterungen