Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::vector<T,Allocator>::insert_range

      From cppreference.com
      <cpp‎ |container‎ |vector

      [edit template]
       
       
       
      std::vector
      Member types
      Member functions
      Non-member functions
      (until C++20)(until C++20)(until C++20)(until C++20)(until C++20)
      Deduction guides(C++17)
       
      template<container-compatible-range<T> R>
      constexpr iterator insert_range( const_iterator pos, R&& rg);
      (since C++23)

      Inserts, in non-reversing order, copies of elements inrg beforepos.

      If after the operation the newsize() is greater than oldcapacity() a reallocation takes place, in which case all iterators (including theend() iterator) and all references to the elements are invalidated. Otherwise, only the iterators and references before the insertion point remain valid.

      Each iterator in the rangerg is dereferenced exactly once.

      Ifrg overlaps with*this, the behavior is undefined.

      Contents

      [edit]Parameters

      pos - iterator before which the content will be inserted (pos may be theend() iterator)
      rg - acontainer compatible range, that is, aninput_range whose elements are convertible toT
      Type requirements
      -
      If any of the following conditions is satisfied, the behavior is undefined:

      [edit]Return value

      An iterator to the first element inserted into*this, orpos ifrg is empty.

      Complexity

      If one of the following conditions is satisfied, performs at most one reallocation:

      (since C++26)

      Notes

      Feature-test macroValueStdFeature
      __cpp_lib_containers_ranges202202L(C++23)Ranges-aware construction and insertion

      [edit]Example

      Run this code
      #include <algorithm>#include <cassert>#include <iterator>#include <vector>#include <list> int main(){auto container=std::vector{1,2,3,4};auto pos=std::next(container.begin(),2);assert(*pos==3);constauto rg=std::list{-1,-2,-3}; #ifdef __cpp_lib_containers_ranges    container.insert_range(pos, rg);#else    container.insert(pos, rg.cbegin(), rg.cend());#endifassert(std::ranges::equal(container,std::vector{1,2,-1,-2,-3,3,4}));}

      [edit]See also

      inserts elements
      (public member function)
      adds a range of elements to the end
      (public member function)
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/container/vector/insert_range&oldid=155604"

      [8]ページ先頭

      ©2009-2025 Movatter.jp