请问为什么输出会报错,(应该是迭代器交换出了问题),请解释一下为什么不可以这样呢?

#include
#include

using namespace std;

int main()
{
vector array{3, 5, 2, 6, 4};
vector outArray{ 1,2,3 };

vector<int> ::iterator it=array.begin();
vector<int> ::iterator it1=array.end();
iter_swap(it,it1);
outArray.assign(it1,it);//清空原数据,赋予新数据={3,5,2,6,4}

cout<<outArray[0];

}
输出报错
terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc

outArray.assign(it1,it);都指向了同一个数组,造成无限添加,最后内存不足