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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::vector::erase - std::vector::erase

Synopsis
	  iterator  erase(  iterator  pos  );				(until
       C++11)
	  iterator  erase(  const_iterator  pos	 );			(since
       C++11)
								   (until
       C++20)
	  constexpr  iterator  erase(  const_iterator  pos  );		(since
       C++20)
	  iterator   erase(   iterator	 first,	  iterator   last    );	   (1)
       (until C++11)
	  iterator	      erase(	       const_iterator		first,
       (since C++11)
	  const_iterator     last     );				   (2)
       (until C++20)
	  constexpr	  iterator	erase(	    const_iterator	first,
       (since C++20)
	  const_iterator last );

	  Erases the specified elements	from the container.

	  1) Removes the element at pos.
	  2) Removes the elements in the range [first, last).

	  Invalidates iterators	and references at or after the	point  of  the
       erase, including
	  the end() iterator.

	  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.

	  The	iterator   first  does	not  need  to  be  dereferenceable  if
       first==last: erasing an
	  empty	range is a no-op.

Parameters
	  pos	      -	iterator to the	element	to remove
	  first, last -	range of elements to remove

Type requirements
	  -
	  T must meet the requirements of MoveAssignable.

Return value
	  Iterator following the last removed element.

	  If pos refers	to the last element, then the end()  iterator  is  re-
       turned.

	  If  last==end() prior	to removal, then the updated end() iterator is
       returned.

	  If [first, last) is an empty range, then last	is returned.

Exceptions
	  Does not throw unless	an exception is	thrown by the assignment oper-
       ator of T.

Complexity
	  Linear: the number of	calls to the destructor	of T is	 the  same  as
       the number of
	  elements  erased,  the assignment operator of	T is called the	number
       of times	equal to
	  the number of	elements in the	vector after the erased	elements

Example
       // Run this code

	#include <vector>
	#include <iostream>

	void print_container(const std::vector<int>& c)
	{
	    for	(int i : c) {
		std::cout << i << " ";
	    }
	    std::cout << '\n';
	}

	int main( )
	{
	    std::vector<int> c{0, 1, 2,	3, 4, 5, 6, 7, 8, 9};
	    print_container(c);

	    c.erase(c.begin());
	    print_container(c);

	    c.erase(c.begin()+2, c.begin()+5);
	    print_container(c);

	    // Erase all even numbers (C++11 and later)
	    for	(std::vector<int>::iterator it = c.begin(); it != c.end(); ) {
		if (*it	% 2 == 0) {
		    it = c.erase(it);
		} else {
		    ++it;
		}
	    }
	    print_container(c);
	}

Output:
	0 1 2 3	4 5 6 7	8 9
	1 2 3 4	5 6 7 8	9
	1 2 6 7	8 9
	1 7 9

See also
	  clear	clears the contents
		(public	member function)

http://cppreference.com		  2022.07.31		 std::vector::erase(3)

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

home | help