```cpp
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define pb push_back
#define mp make_pair
#define fi first
#define se second
void IOS()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
}
void file(string file_name)
{
freopen((file_name+".in").c_str(),"r",stdin);
freopen((file_name+".out").c_str(),"w",stdout);
}
int n,q,a[200010];
list<int>l;
map<int,list<int>::iterator>m;
signed main()
{
//IOS();
//file("");
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=1;i<=n;i++)l.pb(a[i]);
for(list <int>::iterator it=l.begin();it!=l.end();it++)
{
m[*it]=it;
}
cin>>q;
while(q--)
{
int opt,x,y;
cin>>opt>>x;
if(opt==1)
{
cin>>y;
list <int>::iterator it=m[x];
it++;
l.insert(it,y);
m[y]=--it; //这里
}
else
{
list <int>::iterator it=m[x];
l.erase(it);
}
}
for(list <int>::iterator i=l.begin();i!=l.end();i++)cout<<(*i)<<' ';
return 0;
}
```
STL 的链表插入是在给定位置前方新加一个节点,故要 --it。
by xz001 @ 2024-03-09 22:07:00
@[xz001](/user/674967) 懂了,thx
by BugGod @ 2024-03-09 22:47:45