调用C++中的栈,队列和优先级队列库函数

来源:互联网 发布:商标设计软件下载 编辑:程序博客网 时间:2024/06/01 09:10
C++中栈和队列的调用
使用标准库中的栈和队列,相关头文件
#include <stack>
#include <queue>
定义栈如下:
stack<int> stk;


1.s.empty() 如果栈空就返回true,否则返回false;
2.s.size() 返回栈中元素的个数
3.s.pop() 删除栈顶元素但不返回值
4.s.top() 返回栈顶元素但不删除该元素
5.s.push() 在栈顶压入新元素




定义队列如下:
stack<int> q;


1.q.empty() 如果队列为空返回true,否则返回false
2.q.size() 返回队中元素的个数
3.q.pop() 删除队首元素但不删除该元素
4.q.front() 返回队首元素的值,但不删除该元素
5.q.push() 在队尾压入新元素
6.q.back() 返回队尾元素的值,但不删除该元素


定义优先级队列:
#include <iostream>
#include <queue>
using namespace std;
int main()
{
int n,m;
priority_queue<float> p;
printf("请输入你要输入的队列中的节点数:\n");
cin >> n;
for (int i = 1; i <= n; i++)
{
cin >> m;
p.push(m);
}
printf("队列中共有多少元素:\n");
cout << p.size()<<endl;
printf("队列中的元素是:\n");
while (n--)
{
cout<<p.top()<<" ";
p.pop();
}
cout << endl;
}


优先级队列默认是输出最大的,输出最小值需要指定参数
priority_queue<int,vector<int>,greater<int>>
#include <stdio.h>  
      
#include <queue>  
#include <vector>  
#include <functional>  
      
using namespace std;  
      
int main(void)  
{  
    priority_queue<int, vector<int>, greater<int> > pque;  
      
    pque.push(3);  
    pque.push(5);  
    pque.push(1);  
    pque.push(4);  
      
    while (!pque.empty()) {  
        printf("%d ", pque.top());  
        pque.pop();  
    }  
    printf("n");  
      
    return 0;  
}
0 0