优先队列需要头文件是 #include
- #include
- using namespace std;
- int main()
- {
- priority_queue<int>q;
- int a[110];
- for(int i=1;i<=5;i++) cin>>a[i],q.push(a[i]);
- for(int i=1;i<=5;i++) cout<
top()<<" ",q.pop(); - return 0;
- }
或者自定义结构体里比较性函数:
- #include
- using namespace std;
- struct node
- {
- int t,id;
- friend bool operator < (node aa,node bb)
- { return aa.t
- }a[10010];
- int main()
- {
- for(int i=1;i<=6;i++) cin>>a[i].t;
- sort(a+1,a+7);
- return 0;
- }
栈:
- #include
- using namespace std;
- int main()
- {
- stack<int>st;
- for(int i=1;i<=6;i++)
- {
- int x;
- cin>>x;
- st.push(x);
- int y=st.top();
- st.pop();
- cout<
" "; - if(st.empty()) break;
- }
- return 0;
- }
vector:
STL—vector(向量容器)详解_June·D的博客-CSDN博客_stl vectorv
vector实现平衡树:
- #include
- using namespace std;
- int n;
- vector<int> q;
- int main()
- {
- scanf("%d",&n);
- for(int i=1;i<=n;i++)
- {
- int op,k;
- scanf("%d%d",&op,&k);
- if(op==1) q.insert(lower_bound(q.begin(),q.end(),k),k);
- if(op==2) q.erase(lower_bound(q.begin(),q.end(),k));
- if(op==3) printf("%d\n",lower_bound(q.begin(),q.end(),k)-q.begin()+1);
- if(op==4) printf("%d\n",q.at(k-1));
- if(op==5) printf("%d\n",q.at(lower_bound(q.begin(),q.end(),k)-q.begin()-1));
- if(op==6) printf("%d\n",q.at(upper_bound(q.begin(),q.end(),k)-q.begin()));
- }
- return 0;
- }