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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::inserter - std::inserter

Synopsis
	  Defined in header <iterator>
	  template< class Container >

	  std::insert_iterator<Container>				  (un-
       til C++20)

	      inserter(	Container& c, typename Container::iterator i );
	  template< class Container >

	  constexpr			       std::insert_iterator<Container>
       (since C++20)

	      inserter(	Container& c, ranges::iterator_t<Container> i );

	  inserter is  a  convenience  function	 template  that	 constructs  a
       std::insert_iterator
	  for  the  container  c and its iterator i with the type deduced from
       the type	of the
	  argument.

Parameters
	  c - container	that supports an insert	operation
	  i - iterator in c indicating the insertion position

Return value
	  A std::insert_iterator which can be used to insert elements into the
       container c at
	  the position indicated by i.

Possible implementation
	  template<class Container>
	  std::insert_iterator<Container> inserter(Container& c, typename Con-
       tainer::iterator	i)
	  {
	      return std::insert_iterator<Container>(c,	i);
	  }

Example
       // Run this code

	#include <algorithm>
	#include <iostream>
	#include <iterator>
	#include <set>
	#include <vector>

	int main()
	{
	    std::multiset<int> s{1, 2, 3};

	    // std::inserter is	commonly used with multi-sets
	    std::fill_n(std::inserter(s, s.end()), 5, 2);

	    for	(int n : s)
		std::cout << n << ' ';
	    std::cout << '\n';

	    std::vector<int> d{100, 200, 300};
	    std::vector<int> v{1, 2, 3,	4, 5};

	    // when inserting in a sequence  container,	 insertion  point  ad-
       vances
	    // because each std::insert_iterator::operator= updates the	target
       iterator
	    std::copy(d.begin(),   d.end(),  std::inserter(v,  std::next(v.be-
       gin())));

	    for	(int n : v)
		std::cout << n << ' ';
	    std::cout << '\n';
	}

Output:
	1 2 2 2	2 2 2 3
	1 100 200 300 2	3 4 5

	  Defect reports

	  The following	behavior-changing defect reports were applied retroac-
       tively to
	  previously published C++ standards.

	    DR	  Applied to	     Behavior as published		  Cor-
       rect behavior
	  LWG  561 C++98      the type of i was	independent of	     it	is the
       iterator	type of
			     Container				    Container

See also
	  insert_iterator iterator adaptor for insertion into a	container
			  (class template)
			  creates a std::back_insert_iterator of type inferred
       from the
	  back_inserter	  argument
			  (function template)
			  creates a  std::front_insert_iterator	 of  type  in-
       ferred from the
	  front_inserter  argument
			  (function template)

http://cppreference.com		  2024.06.10		      std::inserter(3)

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

home | help