C++之STL-队列Queue与优先队列Priority_Queue

C++之STL-队列Queue与优先队列Priority_Queue

队列适用于FIFO技术,其中FIFO表示先进先出。首先插入的元素将首先被提取,依此类推。有一个称为“前”的元素,它是位于最前位置或位于第一个位置的元素,也有一个名为“后”的元素,它是位于最后位置的元素。在普通队列中,元素的插入在尾部,而删除则从前面开始。

C ++中的优先队列是STL中的派生容器,它仅考虑最高优先级元素。队列遵循FIFO策略,而优先队列根据优先级弹出元素,即,优先级最高的元素首先弹出。
它在某些方面类似于普通队列,但在以下方面有所不同:
在优先队列中,队列中的每个元素都与某个优先级相关联,但是优先级在队列数据结构中不存在。
优先队列中具有最高优先级的元素将被首先删除,而队列遵循FIFO(先进先出)策略,这意味着先插入的元素将被首先删除。
如果存在多个具有相同优先级的元素,则将考虑该元素在队列中的顺序。

#include <iostream>
#include <queue>

using namespace std;

void priority_queue_method(priority_queue<int> queue_p) {
    priority_queue<int> p_queue = queue_p;
    while (!p_queue.empty()) {
        cout << "\t" << p_queue.top();
        p_queue.pop();
    }
}

void queue_ordinary(queue<int> queue_int) {
    queue<int> queue_obj = queue_int;
    while (!queue_obj.empty()) {
        cout << "\t" << queue_obj.front();
        queue_obj.pop();
    }
}

int main() {
    priority_queue<int> p_queue;
    p_queue.push(10);
    p_queue.push(20);
    p_queue.push(30);
    p_queue.push(5);
    cout << "priority_queue:";
    priority_queue_method(p_queue);
    cout << endl;
    cout << "queue:";
    queue<int> queue_container;
    queue_container.push(10);
    queue_container.push(20);
    queue_container.push(30);
    queue_container.push(5);
    queue_ordinary(queue_container);
    return 0;
}
输出:
priority_queue: 30      20      10      5
queue:  10      20      30      5
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值