std::flat_map<Key,T,Compare,KeyContainer,MappedContainer>::erase
Von cppreference.com
| 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.
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 das Element (falls vorhanden) mit dem Schlüssel, das 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 (0 oder 1).
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 von den zugrundeliegenden Containern. Typischerweise linear.| Dieser Abschnitt ist unvollständig Grund: Überarbeitung erforderlich |
[edit] Beispiel
Führen Sie diesen Code aus
#include <flat_map> #include <iostream> int main() { std::flat_map<int, std::string> c = { {1, "one"}, {2, "two"}, {3, "three"}, {4, "four"}, {5, "five"}, {6, "six"} }; // erase all odd numbers from c for (auto it = c.begin(); it != c.end();) { if (it->first % 2 != 0) it = c.erase(it); else ++it; } for (auto& p : c) std::cout << p.second << ' '; std::cout << '\n'; }
Ausgabe
two four six
[edit] Siehe auch
| leert den Inhalt (public member function) |