table of contents
        
      
      
    | std::flat_multiset::insert_range(3) | C++ Standard Libary | std::flat_multiset::insert_range(3) | 
NAME¶
std::flat_multiset::insert_range - std::flat_multiset::insert_range
Synopsis¶
 template< container-compatible-range<value_type> R >
    (since C++23)
  
   void insert_range( R&& rg );
  
   Inserts a copy of each element in the range rg into underlying container c as
    if by:
  
   for (const auto& e : rg)
  
   c.insert(c.end(), e);
  
   Then, sorts the range of newly inserted elements with respect to compare.
    Merges the
  
   resulting sorted range and the sorted range of pre-existing elements into a
    single
  
   sorted range.
  
   Each iterator in the range rg is dereferenced exactly once. The behavior is
  
   undefined if rg overlaps with the container.
  
   Information on iterator invalidation is copied from here
Parameters¶
 rg - a container compatible range, that is, an input_range whose
    elements are
  
   convertible to T
Return value¶
(none)
Complexity¶
N + M·log(M), where N is size() before the operation and M is ranges::distance(rg).
Notes¶
Since insert_range performs an in-place merge operation, that may allocate memory.
Example¶
// Run this code
  
   #include <iostream>
  
   #include <flat_set>
  
   void println(auto, auto const& container)
  
   {
  
   for (const auto& elem : container)
  
   std::cout << elem << ' ';
  
   std::cout << '\n';
  
   }
  
   int main()
  
   {
  
   auto container = std::flat_multiset{1, 3, 2, 4};
  
   const auto 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 3 4
See also¶
 insert inserts elements
  
   (public member function)
| 2024.06.10 | http://cppreference.com |