#include<bits/stdc++.h> using namespace std; #define ll long long template<class t>class chain{ public: chain(ll s=0,t num=0){ siz=s,fro=0; if(siz!=0) for(ll i=0;i<siz;i++) cha[i]=num; }void push(t num){ mi.push(-num); ma.push(num); ct[num]++; cha[siz++]=num; }void pop(){ if(siz==0)return; if(cha[fro]==ma.top()&&ct[cha[fro]]==1){ ma.pop(); }if(cha[fro]==-mi.top()&&ct[cha[fro]]==1){ mi.pop(); } ct[cha[fro]]--; fro++; }t size(){ return siz; }t max(){ return ma.top(); }t min(){ return -mi.top(); }t cnt(t num){ return ct[num]; }t front(){ return cha[fro]; } private: t siz,fro; map<t,t> ct; t cha[1000005]; priority_queue<t> ma,mi; }; int main(){cout<<'?'; chain<ll> ch(10,1); ch.push(3); ch.push(3); cout<<ch.cnt(3); ch.pop(); }
时间: 2024-04-20 13:23:16 浏览: 75
C++万能头: bits/stdc++.h 下载
这段代码是一个名为`chain`的模板类的实现,其中包含了一些操作函数。该类的目的是实现一个链表容器,并提供一些功能,如在链尾插入元素、删除链头元素、获取链表大小、获取最大值和最小值等。
在`main`函数中,创建了一个名为`ch`的`chain`对象,并初始化了大小为10的链表,初始元素为1。然后向链表中插入了两个元素3,并输出元素3的出现次数。接着删除了链头元素,并输出链表中剩余元素的个数。
总体来说,这段代码实现了一个简单的链表容器,并提供了一些基本操作函数。
阅读全文