stl vector写法,插入有问题,难道跟list不一样吗
查看原帖
stl vector写法,插入有问题,难道跟list不一样吗
524906
刘辰雨楼主2022/1/17 20:40
#include<bits/stdc++.h>
#define ll long long
using namespace std;
vector<long long>l;
int n , m ;
int p;
vector<long long>::iterator it;
vector<long long>::iterator tt[999999];
inline ll read(){
	ll x=0,f=1;char ch=getchar();
	while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
	while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
	return x*f;
}
void printlist()
{
    for(it = l.begin() ; it != l.end() ; it++)  cout<<*it<<" ";
    cout<<endl; 
}
int main()
{
    n = read();
    l.push_back(1);
    tt[1] = l.begin();
    for(long long i = 2 ,k; i <= n ; i++)
    {
        k = read();
        vector<long long>::iterator t = tt[k];
        p = read();
		if(t != l.end())if(p)tt[i]=l.insert(++t,i);
       	else tt[i]=l.insert(t,i);
    }
    m = read();
    for(long long i = 1 , k ; i<= m ; i++)
    {
        k = read();
        vector<long long>::iterator t = tt[k];
        if(t != l.end())
		{
			l.erase(t+1);
			tt[k] = l.end();
		}
    }
    printlist();
    return 0;
} 
2022/1/17 20:40
加载中...