Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::flat_set::erase(3)	      C++ Standard Libary      std::flat_set::erase(3)

NAME
       std::flat_set::erase - std::flat_set::erase

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 );

	  Removes specified elements from the container.

	  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-
       id
	  Compare::is_transparent is valid and denotes a type, and neither it-
       erator nor
	  const_iterator is implicitly convertible from	K. It  allows  calling
       this function
	  without constructing an instance of Key.

	   Information on iterator invalidation	is copied from here

	  The  iterator	 pos must be valid and dereferenceable.	Thus the end()
       iterator	(which
	  is valid, but	is not dereferenceable)	cannot be used as a value  for
       pos.

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 Compare object.

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
		(public	member function)

Category:
	    * Todo with	reason

http://cppreference.com		  2024.06.10	       std::flat_set::erase(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::flat_set::erase&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help