首页 > 其他分享 >POJ3481 Double Queue (map)

POJ3481 Double Queue (map)

时间:2024-11-06 23:44:37浏览次数:3  
标签:priority arr code map Double number Queue POJ3481 include

 使用map,并将优先级值放在first以自动排序,如果输入的代码为2,就输出最后一组元素的second并删去,输入代码为3时同理。

#include <iostream>
#include <map>
#include <vector>
using namespace std;
int main(void){
    ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    map <int,int> arr;
    int code,number,priority;
    while(cin>>code){
        if (code==0){
            break;
        }
        else if(code==1){
            cin>>number>>priority;
            arr.insert(make_pair(priority, number));
        }
        else if(code==2){
            if (arr.empty()){
                cout<<"0"<<"\n";
            }
            else{
                map<int,int>::iterator last=--arr.end();
                cout<<last->second<<"\n";
                arr.erase(last);
            }
        }
        else if(code==3){
            if (arr.empty()){
                cout<<"0"<<"\n";
            }
            else {
                cout<<arr.begin()->second<<"\n";
                arr.erase(arr.begin());
            }
        }
    }
}

标签:priority,arr,code,map,Double,number,Queue,POJ3481,include
From: https://blog.csdn.net/2403_87149971/article/details/143582538

相关文章

  • Java & Collection/Executor & SynchronousQueue & 总结
    前言 相关系列《Java&Collection&目录》《Java&Executor&目录》《Java&Collection/Executor&SynchronousQueue&源码》《Java&Collection/Executor&SynchronousQueue&总结》《Java&Collection/Executor&SynchronousQueue......
  • activemq - queue模式
    特点queue是点对点模式,一条消息对应一个消费者,topic是一对多模式,一条消息可能有一个或多个消费者queue模式消息再发送后消费者可以在之后的任意时间消费,topic模式如果没有订阅者消息就是废消息,会被丢弃。queue模式生产者与消费者之间没有时间相关性,topic模式下生产者和消......
  • 【Orange Pi 5 Linux 5.x 内核编程】-等待队列(WaitQueue)
    等待队列(WaitQueue)文章目录等待队列(WaitQueue)1、等待队列介绍2、等待队列初始化2.1静态初始化2.2动态初始化3、队列任务排队3.1wait_event3.2wait_event_timeout3.3wait_event_cmd3.4wait_event_interruptible3.5wait_event_interruptible_ti......
  • stack和queue的使用介绍和模拟实现
    一.适配器的介绍    1.首先,vector和list在STL组件里面被称作容器,而stack和queue则是被称作适配器。    2.容器适配器在底层实现时,主要是对特定类进行封装来作为其底层的容器,并在底层实现的时候,添加了多种函数接口来实现其具体的功能。    3.适配器......
  • Queue
    Queue1、add()和offer()区别:add()和offer()都是向队列中添加一个元素。一些队列有大小限制,因此如果想在一个满的队列中加入一个新项,调用add()方法就会抛出一个unchecked异常,调用offer()方法会返回false。因此就可以在程序中进行有效的判断!2、poll()和remove()区别:r......
  • 【C++】—— priority_queue :平衡效率与秩序的算法利器
    去感受一棵草、一缕风、一场日落,去重新触摸真正的生活。——高盛元目录1、优先级队列1.1什么是优先级队列1.2 priority_queue的使用1.3仿函数2、priority_queue的模拟实现2.1整体框架接口2.2插入&&向上调整2.2删除&&向下调整2.3其他接口2.4优先级队列的应用......
  • epoll 或者kqueue 的原理是什么
    在处理大规模并发网络连接的领域中,epoll和kqueue代表了两种颠覆性的IO事件通知技术。它们被广泛应用于Linux和BSD系统中,以有效管理和优化网络通信过程。本文旨在深入探究epoll和kqueue的内部工作机制,揭示它们如何优于传统的select和poll方法,并分析其对现代网络编程带来的显著影响......
  • Java 中的 队列(Queue)与双端队列(Deque)
    这篇笔记期初是因为在刷算法题的过程中,发现其他解题方法很多地方有采用栈或者队列来解题,我在这方面比较薄弱,特此学习记录一下。关于队列,我的初始印象就是先进先出,但是通过学习,了解到队列还有双端队列(Deque)、优先队列(PriorityQueue)等类型,不同的队列有不同的进出规则。 队列(Qu......
  • C++ -stack、queue
    博客主页:【夜泉_ly】本文专栏:【C++】欢迎点赞......
  • double和float的区别
    在计算机编程中,double和float是两种用于表示浮点数的数据类型,但它们在精度、内存占用和适用场景等方面存在显著的区别。本文将深入探讨double和float之间的差异,以帮助程序员更好地理解何时使用哪种数据类型。1.什么是double和float?double和float都是用于存储浮点数(带有小数点......