警示后人,if you use vector
查看原帖
警示后人,if you use vector
1023285
ljhtomorrow楼主2023/10/18 17:46

一定记住.end()的坑

1.end()指向的是迭代器,用它取值需要加*

2.end()指向的是最后迭代器的后一位,所以应是

*(vec.end()-1)

附上WRONG CODE

#include<bits/stdc++.h>
using namespace std;
vector<int>vec;
void shit(){
	vec.insert(vec.begin()+0,vec.end());
	vec.pop_back();
}
int n,x;
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>x;
		vec.push_back(x);
	}
	do{
		shit();
		for(int i=0;i<vec.size();i++)
			cout<<vec[i]<<" ";
		cout<<endl;
	}while(vec.end()!=n);
	return 0;
}
2023/10/18 17:46
加载中...