std::map<Key,T,Compare,Allocator>:: erase
From de.cppreference.net
|
iterator erase
(
iterator pos
)
;
|
(1) | (constexpr seit C++26) |
|
iterator erase
(
const_iterator pos
)
;
|
(2) |
(seit C++11)
(constexpr seit C++26) |
| (3) | ||
|
iterator erase
(
iterator first, iterator last
)
;
|
(bis C++11) | |
|
iterator erase
(
const_iterator first, const_iterator last
)
;
|
(seit C++11)
(constexpr seit C++26) |
|
|
size_type erase
(
const
Key
&
key
)
;
|
(4) | (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.
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 das Element (falls vorhanden) mit dem Schlüssel, der äquivalent zu
key
ist.
5)
Entfernt alle Elemente, deren Schlüssel äquivalent zum Wert
x
verglichen werden.
Diese Überladung nimmt nur dann an der Überladungsauflösung teil, wenn
Compare
transparent
ist und weder
iterator
noch
const_iterator
implizit von
K
konvertierbar sind. Dies erlaubt den Aufruf dieser Funktion ohne eine Instanz von
Key
zu konstruieren.
Referenzen und Iteratoren zu den gelöschten Elementen werden ungültig. Andere Referenzen und Iteratoren sind nicht betroffen.
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.
Inhalt
Parameter
Rückgabewert
1-3)
Iterator, der dem letzten entfernten Element folgt.
4)
Anzahl der entfernten Elemente (0 oder 1).
5)
Anzahl der entfernten Elemente.
Ausnahmen
1-3)
Wirft nichts.
4,5)
Alle vom
Compare
-Objekt ausgelösten Ausnahmen.
Komplexität
Gegeben eine Instanz
c
von
1,2)
Amortisiert konstant.
3)
log
(
c.
size
(
)
)
+
std::
distance
(
first, last
)
4)
log
(
c.
size
(
)
)
+
c.
count
(
key
)
5)
log
(
c.
size
(
)
)
+
c.
count
(
x
)
Hinweise
BeispielDiesen Code ausführen #include <map>
#include <iostream>
int main()
{
std::map<int, std::string> map =
{
{1, "one"}, {2, "two"}, {3, "three"},
{4, "four"}, {5, "five"}, {6, "six"}
};
// erase all odd keys from map
for (auto it = map.begin(); it != map.end();)
{
if (it->first % 2 != 0)
it = map.erase(it);
else
++it;
}
for (const auto& pair : map)
std::cout << pair.second << ' ';
std::cout << '\n';
}
Ausgabe: two four six
FehlerberichteDie folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
Siehe auch
|