求助大佬QAQ
查看原帖
求助大佬QAQ
1082637
Neflibatas楼主2023/10/10 14:01

插入时编译器发生迭代器越界错误,但是想不到解决的方法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;
}
2023/10/10 14:01
加载中...