Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::insert_range

      From cppreference.com
      <cpp‎ |container‎ |unordered map

      [edit template]
       
       
       
      std::unordered_map
      Member types
      Member functions
      Non-member functions
      Deduction guides(C++17)
       
      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:

      If after the operation the new number of elements is greater than oldmax_load_factor() * bucket_count() a rehashing takes place.
      If rehashing occurs (due to the insertion), all iterators are invalidated. Otherwise (no rehashing), iterators are not invalidated.

      Contents

      [edit]Parameters

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

      [edit]Complexity

      Average case\(\scriptsize N\)N, worst case\(\scriptsize O(N \cdot S + N)\)O(N·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 <unordered_map>#include <utility> void println(auto,constauto& container){for(constauto&[key, value]: container)std::cout<<'{'<< key<<','<< value<<'}'<<' ';std::cout<<'\n';} int main(){auto container=std::unordered_map{std::pair{1,11},{3,33},{2,22},{4,44}};constauto rg={std::pair{-1,-11},{3,-33},{-2,-22}};#ifdef __cpp_lib_containers_ranges    container.insert_range(rg);#else    container.insert(rg.begin(), rg.end());#endif    println("{}", container);}

      Possible output:

      {4,44} {-1,-11} {2,22} {3,33} {-2,-22} {1,11}

      [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/unordered_map/insert_range&oldid=156371"

      [8]ページ先頭

      ©2009-2025 Movatter.jp