插入时编译器发生迭代器越界错误,但是想不到解决的方法QAQ(我知道这道题应该用链表做,但是我想试试vector能不能成)
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main()
{
vector<int>v;
v.reserve(10000);
v.push_back(1);
int n, k, p;
cin >> n;
for (int i = 2; i <= n; i++)
{
cin >> k >> p;
vector<int>::iterator a;
a = find(v.begin(), v.end(), k);
if (p)
v.insert(a+1, i);
else
v.insert(a, i);
}
cin >> n;
while (n--)
{
cin >> k;
v.erase(find(v.begin(), v.end(), k));
}
for (vector<int>::iterator it = v.begin(); it != v.end(); it++)
{
cout << *it << " ";
}
system("pause");
return 0;
}