Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::set<Key,Compare,Allocator>::insert_range

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

      [edit template]
       
       
       
       
      template<container-compatible-range<value_type> R>
      void insert_range( R&& rg);
      (since C++23)
      (constexpr since C++26)

      Inserts a copy of each element in the rangerg if and only if there is no element with key equivalent to the key of that element in*this.

      Each iterator in the rangerg is dereferenced exactly once.

      If any of the following conditions is satisfied, the behavior is undefined:

      No iterators or references are invalidated.

      Contents

      [edit]Parameters

      rg - acontainer compatible range, that is, aninput_range whose elements are convertible toT

      [edit]Complexity

      \(\scriptsize N \cdot \log(S + N)\)N·log(S+N), where\(\scriptsize S\)S issize() and\(\scriptsize N\)N isranges::distance(rg).

      [edit]Notes

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

      [edit]Example

      Run this code
      #include <iostream>#include <set> void println(auto,constauto& container){for(constauto& elem: container)std::cout<< elem<<' ';std::cout<<'\n';} int main(){auto container=std::set{1,3,2,4};constauto rg={-1,3,-2};#ifdef __cpp_lib_containers_ranges    container.insert_range(rg);#else    container.insert(rg.begin(), rg.end());#endif    println("{}", container);}

      Output:

      -2 -1 1 2 3 4

      [edit]See also

      inserts elementsor nodes(since C++17)
      (public member function)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/container/set/insert_range&oldid=156363"

      [8]ページ先頭

      ©2009-2025 Movatter.jp