亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

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
大姚县| 东阿县| 冷水江市| 页游| 康马县| 浦北县| 深州市| 民和| 固安县| 安塞县| 南丹县| 巨鹿县| 五华县| 卢龙县| 金乡县| 新巴尔虎右旗| 美姑县| 花莲县| 霍林郭勒市| 商丘市| 麻城市| 鹤山市| 池州市| 罗源县| 正蓝旗| 鲜城| 阿坝| 临泽县| 赣州市| 启东市| 都昌县| 都安| 温宿县| 北海市| 东宁县| 辛集市| 西藏| 高密市| 澄城县| 凉城县| 太康县|