- vector当栈
- 利用lower_bound() 维持一个有序vector
```cpp
include
using namespace std;define ll long long
define FOR(i,n,m) for(int i =n;i<m;++i)
int main()
{
ios::sync_with_stdio(false);
int n;
vector v1,v; //v1当stack ,v当排序好的栈
cin>>n;
vector::iterator it;
while(n—)
{
string s ;cin>>s;
if(s == “Push”)
{
int temp;
cin>>temp;
v1.push_back(temp);
it = lower_bound(v.begin(),v.end(),temp);
v.insert(it,temp);
}
else if(s == “Pop”)
{
if(v1.size() == 0)
cout<<”Invalid\n”;
else
{
it = lower_bound(v.begin(),v.end(),v1[v1.size()-1]);
v.erase(it);
cout<<v1[v1.size()-1]<<”\n”;
v1.pop_back();
}
}
else if(s == “PeekMedian”)
{
if(v1.size() == 0)
{
cout<<”Invalid\n”;
continue;
}
int idx =(v.size()+1)/2 - 1;
cout<<v[idx]<<"\n";
}
}
return 0;
}
```