最終更新日時(UTC): 2026年02月17日 14時22分33秒
Akira Takahashi が更新

履歴 編集

function template
<queue>

# std::priority_queue::push_range(C++23)

    template <container-compatible-range<value_type> R>
    void push_range(R&& rg);           // (1) C++23
    template <container-compatible-range<value_type> R>
    constexpr void push_range(R&& rg); // (1) C++26

## 概要

Range`rg` の各要素を `priority_queue` に追加し、優先順に並べ替えを行う。

## 効果

まず `c` に `rg` の要素を追加する。`c.append_range(forward<R>(rg))` が有効であれば、これで要素を追加する。そうでなければ、`ranges::copy(rg, back_inserter(c))` で要素を追加する。

次に、`make_heap(c.begin(), c.end(), comp)` で優先順に並べ替えを行う。

## 戻り値

なし

## 例

    #include <iostream>
    #include <queue>
    #include <vector>

    int main()
    {
        std::priority_queue<int> que;
        std::vector<int> vec = {2, 1, 3};

        que.push_range(vec);

        while (!que.empty()) {
            std::cout << que.top() << std::endl;
            que.pop();
        }
    }

### 出力

    3
    2
    1

## 関連項目

名前 | 説明
--- | ---
`push` | 要素を追加する

## 参照

- P3372R3 constexpr containers and adaptors