std::multimap<Key,T,Compare,Allocator>:: erase
|
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. Die Reihenfolge der verbleibenden äquivalenten Elemente bleibt erhalten.
[
first
,
last
)
, der ein gültiger Bereich in
*
this
sein muss.
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.
5)
Anzahl der entfernten Elemente.
Exceptions
1-3)
Wirft nichts.
4,5)
Alle Ausnahmen, die vom
Compare
-Objekt geworfen werden.
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::multimap<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
|