Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::basic_string<CharT,Traits,Allocator>::insert_range

      From cppreference.com
      <cpp‎ |string‎ |basic string
       
       
       
      std::basic_string
       
      template<container-compatible-range<CharT> R>
      constexpr iterator insert_range( const_iterator pos, R&& rg);
      (since C++23)

      Inserts characters from the rangerg before the element (if any) pointed bypos.

      Equivalent to

      return insert(pos- begin(),std::basic_string(std::from_range,        std​::​forward<R>(rg),        get_allocator()));

      Ifpos is not a valid iterator on*this, the behavior is undefined.

      Contents

      [edit]Parameters

      pos - iterator before which the characters will be inserted
      rg - acontainer compatible range

      [edit]Return value

      An iterator which refers to the first inserted character, orpos if no characters were inserted becauserg was empty.

      [edit]Complexity

      Linear in size ofrg.

      [edit]Exceptions

      Ifstd::allocator_traits<Allocator>::allocate throws an exception, it is rethrown.

      If the operation would causesize() to exceedmax_size(), throwsstd::length_error.

      If an exception is thrown for any reason, this function has no effect (strong exception safety guarantee).

      [edit]Notes

      Feature-test macroValueStdFeature
      __cpp_lib_containers_ranges202202L(C++23)member functions that acceptcontainer compatible range

      [edit]Example

      Run this code
      #include <cassert>#include <iterator>#include <string> int main(){constauto source={'l','i','b','_'};std::string target{"__cpp_containers_ranges"};//                        ^insertion will occur//                         before this position constauto pos= target.find("container");assert(pos!= target.npos);auto iter=std::next(target.begin(), pos); #ifdef __cpp_lib_containers_ranges    target.insert_range(iter, source);#else    target.insert(iter, source.begin(), source.end());#endif assert(target=="__cpp_lib_containers_ranges");//                      ^^^^}

      [edit]See also

      inserts characters
      (public member function)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/string/basic_string/insert_range&oldid=161646"

      [8]ページ先頭

      ©2009-2025 Movatter.jp