std::flat_multiset<Key,Compare,KeyContainer>:: erase
From cppreference.net
<
cpp
|
container
|
flat multiset
|
iterator erase
(
iterator pos
)
;
|
(1) |
(seit C++23)
(constexpr seit C++26) |
|
iterator erase
(
const_iterator pos
)
;
|
(2) |
(seit C++23)
(constexpr seit C++26) |
|
iterator erase
(
const_iterator first, const_iterator last
)
;
|
(3) |
(seit C++23)
(constexpr seit C++26) |
|
size_type erase
(
const
Key
&
key
)
;
|
(4) |
(seit C++23)
(constexpr seit C++26) |
|
template
<
class
K
>
size_type erase ( K && x ) ; |
(5) |
(seit C++23)
(constexpr seit C++26) |
Entfernt bestimmte Elemente aus dem Container. Die Reihenfolge der verbleibenden äquivalenten Elemente bleibt erhalten.
1,2)
Entfernt das Element an Position
pos
.
3)
Entfernt die Elemente im Bereich
[
first
,
last
)
, der ein gültiger Bereich in
*
this
sein muss.
4)
Entfernt alle Elemente mit dem Schlüssel equivalent zu
key
.
5)
Entfernt alle Elemente, deren Schlüssel äquivalent zum Wert
x
verglichen wird.
Diese Überladung nimmt nur dann an der Überladungsauflösung teil, wenn
Compare
transparent
ist und weder
iterator
noch
const_iterator
implizit von
K
konvertierbar ist. Dies erlaubt den Aufruf dieser Funktion ohne eine Instanz von
Key
zu konstruieren.
| Informationen zur Iterator-Invalidierung sind kopiert von hier |
Der Iterator pos muss dereferenzierbar sein. Daher kann der end() -Iterator (der gültig, aber nicht dereferenzierbar ist) nicht als Wert für pos verwendet werden.
Inhaltsverzeichnis |
Parameter
| pos | - | Iterator zum zu entfernenden Element |
| first, last | - | Das Iteratorpaar, das den Bereich der zu entfernenden Elemente definiert |
| key | - | Schlüsselwert der zu entfernenden Elemente |
| x | - | Ein Wert beliebigen Typs, der transparent mit einem Schlüssel verglichen werden kann, der die zu entfernenden Elemente bezeichnet |
Rückgabewert
1-3)
Iterator, der dem letzten entfernten Element folgt.
4)
Anzahl der entfernten Elemente.
5)
Anzahl der entfernten Elemente.
Exceptions
1-3)
Wirft nichts.
4,5)
Alle Ausnahmen, die vom
Compare
-Objekt geworfen werden.
Komplexität
Depends on underlying container. Typically linear.|
Dieser Abschnitt ist unvollständig
Grund: Überarbeitung erforderlich |
Beispiel
Diesen Code ausführen
#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 }
Siehe auch
|
löscht den Inhalt
(öffentliche Elementfunktion) |