首页 > 代码库 > STL优先队列的使用
STL优先队列的使用
STL中有一个优先队列的容器可以使用。
【头文件】
queue 队列容器
vector 向量容器
【操作】
优先级队列支持的操作 |
q.empty() 如果队列为空,则返回true,否则返回false q.size() 返回队列中元素的个数 q.pop() 删除队首元素,但不返回其值 q.top() 返回具有最高优先级的元素值,但不删除该元素 q.push(item) 在基于优先级的适当位置插入新元素 |
1 #include<iostream> 2 #include<cstdio> 3 #include<queue> 4 5 using namespace std; 6 7 struct cmp 8 { 9 bool operator()(int x,int y)10 {11 return x>y;12 }13 };14 15 typedef struct nod16 {17 int x,y;18 friend bool operator < (nod a,nod b)19 {20 return a.y>b.y;21 }22 } node;23 24 int main()25 {26 priority_queue<int>simple;27 priority_queue<int,vector<int>,cmp>define;28 priority_queue<node>heap;29 30 int a[10]={20,50,3202,20,503,12,56,62,50,80};31 32 printf("Simple Test:\n");33 for (int i=0;i<10;i++) simple.push(a[i]);34 for (int i=1;i<=10;i++)35 {36 int temp=simple.top();37 simple.pop();38 printf("%d\n",temp);39 }40 41 printf("Define Test:\n");42 for (int i=0;i<10;i++) define.push(a[i]);43 for (int i=1;i<=10;i++)44 {45 int temp=define.top();46 define.pop();47 printf("%d\n",temp);48 }49 50 printf("Heap Test:\n");51 node b[10]={{1,2},{2,100},{3,4},{4,50},{5,6},{6,7},{7,8},{8,9},{9,10},{10,11}};52 for (int i=0;i<10;i++) heap.push(b[i]);53 for (int i=1;i<=10;i++)54 {55 node temp=heap.top();56 heap.pop();57 printf("%d %d\n",temp.x,temp.y);58 }59 60 printf("%d",2<1);61 62 return 0;63 }
STL优先队列的使用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。