std::flat_map<Key,T,Compare,KeyContainer,MappedContainer>:: erase
From de.cppreference.net
|
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.
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 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 sind. Dies erlaubt den Aufruf dieser Funktion ohne eine Instanz von
Key
zu konstruieren.
| Informationen zur Iterator-Invalidierung sind kopiert von |
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.
InhaltParameter
Rückgabewert
1-3)
Iterator, der dem letzten entfernten Element folgt.
4)
Anzahl der entfernten Elemente (0 oder 1).
5)
Anzahl der entfernten Elemente.
Exceptions
1-3)
Wirft nichts.
4,5)
Alle Ausnahmen, die vom
Compare
-Objekt geworfen werden.
KomplexitätDepends on underlying containers. Typically linear.
BeispielDiesen Code ausführen #include <flat_map>
#include <iostream>
int main()
{
std::flat_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
Siehe auch
|