c++ priority_queue的迭代器使用

   2024-09-30 3960
核心提示:std::priority_queue 是 C++ 标准库中的一个容器适配器,它提供了对元素进行排序和访问的功能然而,如果你需要遍历 std::priorit

std::priority_queue 是 C++ 标准库中的一个容器适配器,它提供了对元素进行排序和访问的功能

然而,如果你需要遍历 std::priority_queue 中的所有元素,可以通过以下方法实现:

std::priority_queue 中的元素移动到一个临时的容器(例如 std::vector)中。对临时容器进行排序(如果需要)。使用迭代器遍历临时容器。

这里有一个示例:

#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,可以在操作之前创建一个副本。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号