91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

c++ priority_queue的迭代器使用

c++
小樊
85
2024-09-04 19:15:09
欄目: 編程語言

std::priority_queue 是 C++ 標準庫中的一個容器適配器,它提供了對元素進行排序和訪問的功能

然而,如果你需要遍歷 std::priority_queue 中的所有元素,可以通過以下方法實現:

  1. std::priority_queue 中的元素移動到一個臨時的容器(例如 std::vector)中。
  2. 對臨時容器進行排序(如果需要)。
  3. 使用迭代器遍歷臨時容器。

這里有一個示例:

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

int main() {
    std::priority_queue<int> pq;
    pq.push(5);
    pq.push(8);
    pq.push(3);
    pq.push(1);

    // 將 priority_queue 中的元素移動到 vector 中
    std::vector<int> temp_vec;
    while (!pq.empty()) {
        temp_vec.push_back(pq.top());
        pq.pop();
    }

    // 對 vector 進行排序(從小到大)
    std::sort(temp_vec.begin(), temp_vec.end());

    // 使用迭代器遍歷 vector
    for (auto it = temp_vec.begin(); it != temp_vec.end(); ++it) {
        std::cout << *it << " ";
    }

    return 0;
}

這段代碼首先將 std::priority_queue 中的元素移動到一個 std::vector 中,然后對 std::vector 進行排序,最后使用迭代器遍歷 std::vector。注意,這種方法會改變 std::priority_queue 的內部狀態,因為我們在將元素移動到 std::vector 時會不斷地調用 pop() 函數。如果你需要保留原始的 std::priority_queue,可以在操作之前創建一個副本。

0
东乡| 永善县| 淳化县| 邹平县| 庆元县| 伽师县| 闽清县| 阜康市| 湘潭县| 科尔| 绥宁县| 喀喇沁旗| 枣庄市| 东丽区| 密山市| 南充市| 镇康县| 麦盖提县| 安国市| 湖南省| 仁化县| 探索| 汉中市| 清徐县| 郯城县| 蒙城县| 东阳市| 阜城县| 沿河| 瑞丽市| 宾川县| 广饶县| 安国市| 五家渠市| 阳朔县| 樟树市| 卢龙县| 彭州市| 卢湾区| 商洛市| 嫩江县|