程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> PKU3481(Double Queue)STL-map

PKU3481(Double Queue)STL-map

編輯:C++入門知識

[cpp]   /*****************************************  題目大意:  code==1  則k在排隊,k的優先級為p;  code==2  把優先級最高的做出列處理;  code==3  把優先級最低的做出列處理;    算法思想:  用STL中map處理,因為map可以自動排序;  將優先級p作為map的關鍵字;  每插入一個元素map會自動排序處理;  按照要求輸出處理即可;  ******************************************/   #include<iostream>   #include<algorithm>   #include<stack>   #include<cstring>   #include<cstdlib>   #include<cstdio>   #include<map>   using namespace std;      int main()   {       //freopen("C:\\Users\\Administrator\\Desktop\\kd.txt","r",stdin);       int code;       map<int,int>Map;       while(scanf("%d",&code)&&code)       {           if(code==1)           {               int k,p;               scanf("%d%d",&k,&p);               Map[p]=k;           }           else if(code==3)           {               if(!Map.empty())               {                   printf("%d\n",Map.begin()->second);                   Map.erase(Map.begin());//刪除順序的隊首元素               }               else                   puts("0");           }           else           {               if (!Map.empty())               {   www.2cto.com                 printf("%d\n",Map.rbegin()->second);                   Map.erase(Map.find(Map.rbegin()->first));//刪除逆序的隊首元素,注意和刪除順序隊列的區別               }               else                   puts("0");           }       }       return 0;   }  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved