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). 여기서 Nranges::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
}

더 알아보기 (Learn more)

cppreference