std::flat_set::erase(3)
π NAME π
std::flat_set::erase β that's the whole name, bestie, and yes it's from the C++ Standard Library manual for std::flat_set::erase(3) π
β¨ 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 );
It removes specified elements from the container β¨
1,2)Removes the element atpos.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 tokey.5)Removes all elements with key that compares equivalent to the valuex. 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.
The iteratorposmust be valid and dereferenceable. Thus theend()iterator (which is valid, but is not dereferenceable) cannot be used as a value forpos. π¨
π Parameters π
posβ iterator to the element to removefirst,lastβ range of elements to removekeyβ key value of the elements to removexβ 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 (0or1).5)Number of elements removed.
π¦ Exceptions π¦
1-3)Throws nothing.4,5)Any exceptions thrown by theCompareobject.
π₯ Complexity π₯
Depends on underlying container. Typically linear.
This section is incomplete Reason: revision required
πΈ Example πΈ
// Run this code π
#include <flat_set>
#include <iostream>
int main()
{
std::flat_set<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();
}
π See also π
clearβ clears the contents (publicmember function)
π§ Category π§
Todo with reason
source/version: http://cppreference.com, date 2024.06.10, page std::flat_set::erase(3) β that's the whole manual page, bestie! bye bye π«Άπ
π¦ 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