Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::inserter

      From cppreference.com
      <cpp‎ |iterator
       
       
      Iterator library
      Iterator concepts
      Iterator primitives
      Algorithm concepts and utilities
      Indirect callable concepts
      Common algorithm requirements
      (C++20)
      (C++20)
      (C++20)
      Utilities
      (C++20)
      Iterator adaptors
      Range access
      (C++11)(C++14)
      (C++14)(C++14)  
      (C++11)(C++14)
      (C++14)(C++14)  
      (C++17)(C++20)
      (C++17)
      (C++17)
       
      Defined in header<iterator>
      template<class Container>

      std::insert_iterator<Container>

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

      constexprstd::insert_iterator<Container>

          inserter( Container& c,ranges::iterator_t<Container> i);
      (since C++20)

      inserter is a convenience function template that constructs astd::insert_iterator for the containerc and its iteratori with the type deduced from the type of the argument.

      Contents

      [edit]Parameters

      c - container that supports aninsert operation
      i - iterator inc indicating the insertion position

      [edit]Return value

      Astd::insert_iterator which can be used to insert elements into the containerc at the position indicated byi.

      [edit]Possible implementation

      template<class Container>std::insert_iterator<Container> inserter(Container& c,typename Container::iterator i){returnstd::insert_iterator<Container>(c, i);}

      [edit]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-setsstd::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 advances// because each std::insert_iterator::operator= updates the target iteratorstd::copy(d.begin(), d.end(), std::inserter(v,std::next(v.begin()))); 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

      [edit]Defect reports

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

      DRApplied toBehavior as publishedCorrect behavior
      LWG 561C++98the type ofi was independent ofContainerit is the iterator type ofContainer

      [edit]See also

      iterator adaptor for insertion into a container
      (class template)[edit]
      creates astd::back_insert_iterator of type inferred from the argument
      (function template)[edit]
      creates astd::front_insert_iterator of type inferred from the argument
      (function template)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/iterator/inserter&oldid=159914"

      [8]ページ先頭

      ©2009-2025 Movatter.jp