Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::flat_multimap<Key,T,Compare,KeyContainer,MappedContainer>::insert_range

      From cppreference.com
      <cpp‎ |container‎ |flat multimap

      [edit template]
       
       
       
      std::flat_multimap
      Member types
      Member functions
      Non-member functions
      Helper classes
      Tags
      Deduction guides
       
      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 into underlying containersc as if by:

      for(constauto& e: rg){    c.keys.insert(c.keys.end(), e.first);    c.values.insert(c.values.end(), e.second);}

      Then, sorts the range of newly inserted elements with respect tovalue_comp().Merges the resulting sorted range and the sorted range of pre-existing elements into a single sorted range.

      Each iterator in the rangerg is dereferenced exactly once.

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

      Information on iterator invalidation is copied fromhere

      Contents

      [edit]Parameters

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

      [edit]Complexity

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

      [edit]Notes

      Sinceinsert_range performs an in-place merge operation, that may allocate memory.

      [edit]Example

      Run this code
      #include <iostream>#include <flat_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::flat_multimap{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);}

      Output:

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

      [edit]See also

      inserts elements
      (public member function)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/container/flat_multimap/insert_range&oldid=169270"

      [8]ページ先頭

      ©2009-2025 Movatter.jp