std::priority_queue<T,Container,Compare>::push_range - cppreference.com (original) (raw)

Inserts a copy of each element of rg in priority_queue, as if by:

Then restores the heap property as if by ranges::make_heap(c, comp). After the insertion ranges::is_heap(c, comp) is true.

Each iterator in the range rg is dereferenced exactly once.

[edit] Parameters

[edit] Complexity

The complexity of c.append_range plus the complexity of ranges::make_heap(c, comp).

[edit] Notes

Feature-test macro Value Std Feature
__cpp_lib_containers_ranges 202202L (C++23) Ranges-aware construction and insertion

[edit] Example

#include #include #include #ifdef __cpp_lib_format_ranges #include using std::println; #else #define FMT_HEADER_ONLY #include <fmt/ranges.h> using fmt::println; #endif   int main() { std::priority_queue adaptor; const auto rg = {1, 3, 2, 4};   #ifdef __cpp_lib_containers_ranges adaptor.push_range(rg); #else for (int e : rg) adaptor.push(e); #endif   println("{}", adaptor); }

Output:

[edit] See also

| | inserts element and sorts the underlying container (public member function) [edit] | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |