std::flat_map::erase(3)
π std::flat_map::erase(3) π
okay so bestie, welcome to the std::flat_map::erase page from the C++ Standard Libary manual β section 3, no cap. It's giving erase energy, and every overload here is since C++23. Let's get into it π
β¨ NAME β¨
std::flat_map::erase β std::flat_map::erase (yes bestie, the name is the name π).
π Synopsis π
iterator erase( iterator position ); (1)
(since C++23)
iterator erase( const_iterator pos ); (2)
(since C++23)
iterator erase( const_iterator first, const_iterator last ); (3)
(since C++23)
size_type erase( const Key& key ); (4)
(since C++23)
template< class K > (5)
(since C++23)
size_type erase( K&& x );
okay so what it does: removes specified elements from the container. iconic.
- 1,2) Removes the element at
pos. - 3) Removes the elements in the range
[first, last), which must be a valid range in*this. - 4) Removes the element (if one exists) with the key equivalent to
key. - 5) Removes all elements with key that compares equivalent to the value
x. This overload participates in overload resolution only if the qualified-idCompare::is_transparentis valid and denotes a type, and neitheriteratornorconst_iteratoris implicitly convertible fromK. It allows calling this function without constructing an instance ofKey.
π Information on iterator invalidation is copied from here β periodt.
β οΈ bestie, listen: the iteratorposmust be valid and dereferenceable. Thus theend()iterator (which is valid, but is not dereferenceable) cannot be used as a value forpos. no cap, that's a real warning.
πΈ Parameters πΈ
posβ iterator to the element to remove.first,lastβ range of elements to remove.keyβ key value of the elements to remove.xβ a value of any type that can be transparently compared with a key denoting the elements to remove.
π«Ά Return value π«Ά
- 1-3) Iterator following the last removed element.
- 4) Number of elements removed (0 or 1).
- 5) Number of elements removed.
π₯ Exceptions π₯
- 1-3) Throws nothing.
- 4,5) Any exceptions thrown by the
Compareobject.
β Complexity β
Depends on underlying containers. Typically linear.
π§ This section is incomplete Reason: revision required
π Example π
// Run this code
#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';
}
Output:
two four six
π¦ See also π¦
clearβ clears the contents (public member function).
π Category π
- Todo with reason
xoxo, your Unix bestie π β source/version: http://cppreference.com, date: 2024.06.10, page: std::flat_map::erase(3). mwah π
π¦ where this page comes from
- nixpkgs unstable: stdman 2024.07.05
- opensuse-leap 16.0: stdman 2024.07.05-bp160.1.9 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms