std::priority_queue<T,Container,Compare>:: push_range
|
template
<
container-compatible-range
<
value_type
>
R
>
void push_range ( R && rg ) ; |
(C++23 이후) | |
rg
의 각 요소 복사본을
priority_queue
에 삽입합니다. 다음과 같이 수행됩니다:
-
c.
append_range
(
std::
forward
<
R
>
(
rg
)
)
해당 표현식이 유효한 경우(즉, 기반 컨테이너
c
가 적절한
append_range멤버 함수를 갖는 경우), 또는 - ranges:: copy ( rg, std:: back_inserter ( c ) ) 그렇지 않은 경우.
그런 다음 ranges:: make_heap ( c, comp ) 를 사용한 것처럼 힙 속성을 복원합니다. 삽입 후에는 ranges:: is_heap ( c, comp ) 가 true 입니다.
범위 내의 각 반복자는 rg 정확히 한 번 역참조됩니다.
목차 |
매개변수
| rg | - |
컨테이너 호환 범위
, 즉 요소들이
T
로 변환 가능한
input_range
|
복잡도
c. append_range 의 복잡도 더하기 ranges:: make_heap ( c, comp ) 의 복잡도.
참고 사항
| 기능 테스트 매크로 | 값 | 표준 | 기능 |
|---|---|---|---|
__cpp_lib_containers_ranges
|
202202L
|
(C++23) | 레인지 인식 생성 및 삽입 |
예제
#include <initializer_list> #include <queue> #include <version> #ifdef __cpp_lib_format_ranges #include <print> using std::println; #else #define FMT_HEADER_ONLY #include <fmt/ranges.h> using fmt::println; #endif int main() { std::priority_queue<int> 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); }
출력:
[4, 3, 2, 1]
참고 항목
|
요소를 삽입하고 내부 컨테이너를 정렬합니다
(public member function) |