priority_queue_push_range
priority_queue_push_range (std::priority_queue::push_range — 범위 삽입)
std::priority_queue에 범위(range)의 원소들을 삽입하는 멤버 함수예요.
출처: cppreference
본문
시그니처는 다음과 같아요.
template< container-compatible-range<value_type> R >
void push_range( R&& rg ); // (since C++23)
범위 rg의 각 원소 복사본을 우선순위 큐에 삽입해요. 즉 rg의 각 원소마다 push하는 것과 동등해요(힙 유지). 각 이터레이터는 정확히 한 번 역참조돼요.
매개변수
rg: 원소들이value_type으로 변환 가능한 container compatible range.
복잡도
N·log(size() + N). 여기서 N은 ranges::distance(rg)예요(각 push가 로그 시간).
예제
#include <iostream>
#include <queue>
int main()
{
std::priority_queue<int> pq;
pq.push_range(std::array{4, 1, 3, 2});
std::cout << pq.top() << '\n'; // 4
}