std::flat_multiset<Key,Compare,KeyContainer>::erase
Von cppreference.com
< cpp | container | flat multiset
| iterator erase( iterator position ); |
(1) | (seit C++23) |
| iterator erase( const_iterator pos ); |
(2) | (seit C++23) |
| iterator erase( const_iterator first, const_iterator last ); |
(3) | (seit C++23) |
| size_type erase( const Key& key ); |
(4) | (seit C++23) |
template< class K > size_type erase( K&& x ); |
(5) | (seit C++23) |
Entfernt angegebene Elemente aus dem Container. Die Reihenfolge der verbleibenden äquivalenten Elemente wird beibehalten.
1,2) Entfernt das Element an der Position pos.
3) Entfernt die Elemente im Bereich
[first, last), was ein gültiger Bereich in *this sein muss.4) Entfernt alle Elemente mit dem Schlüssel, der zu key äquivalent ist.
5) Entfernt alle Elemente mit einem Schlüssel, der sich äquivalent zum Wert x verhält. Diese Überladung nimmt nur an der Überladungsauflösung teil, wenn der qualifizierte Bezeichner Compare::is_transparent gültig ist und einen Typ bezeichnet und weder
iterator noch const_iterator von K implizit konvertierbar sind. Es ermöglicht das Aufrufen dieser Funktion, ohne eine Instanz von Key zu erstellen.| Informationen zur Iterator-Invalidierung sind von hier kopiert. |
Der Iterator pos muss gültig und dereferenzierbar sein. Daher kann der end() Iterator (der gültig, aber nicht dereferenzierbar ist) nicht als Wert für pos verwendet werden.
Inhalt |
[edit] Parameter
| pos | - | Iterator auf das zu entfernende Element |
| first, last | - | Das Iteratorenpaar, das den Bereich der zu entfernenden Elemente definiert |
| key | - | Schlüsselwert der zu entfernenden Elemente |
| x | - | Ein Wert eines beliebigen Typs, der transparent mit einem Schlüssel verglichen werden kann, der die zu entfernenden Elemente bezeichnet |
[edit] Rückgabewert
1-3) Iterator nach dem zuletzt entfernten Element.
4) Anzahl der entfernten Elemente.
5) Anzahl der entfernten Elemente.
[edit] Ausnahmen
1-3) Wirft nichts.
4,5) Alle Ausnahmen, die vom
Compare-Objekt ausgelöst werden.[edit] Komplexität
Abhängig vom zugrunde liegenden Container. Typischerweise linear.| Dieser Abschnitt ist unvollständig Grund: Überarbeitung erforderlich |
[edit] Beispiel
Führen Sie diesen Code aus
#include <flat_set> #include <iostream> int main() { std::flat_multiset<int> c = {1, 2, 3, 4, 1, 2, 3, 4}; auto print = [&c] { std::cout << "c = { "; for (int n : c) std::cout << n << ' '; std::cout << "}\n"; }; print(); std::cout << "Erase all odd numbers:\n"; for (auto it = c.begin(); it != c.end();) { if (*it % 2 != 0) it = c.erase(it); else ++it; } print(); std::cout << "Erase 1, erased count: " << c.erase(1) << '\n'; std::cout << "Erase 2, erased count: " << c.erase(2) << '\n'; std::cout << "Erase 2, erased count: " << c.erase(2) << '\n'; print(); }
Ausgabe
c = { 1 1 2 2 3 3 4 4 }
Erase all odd numbers:
c = { 2 2 4 4 }
Erase 1, erased count: 0
Erase 2, erased count: 2
Erase 2, erased count: 0
c = { 4 4 }[edit] Siehe auch
| leert den Inhalt (public member function) |