| 关于这个话题,网上有太多的版本了。 甚至我自己的博客中也出现了三个版本,以后,以这一篇的版本为准: 正式版本void del_vec_foreach(vector<int>& vec,int target) {
	for (vector<int>::iterator it = vec.begin(); it != vec.end();) {
		if (*it == target) {
			it = vec.erase(it);
		}
		else {
			++it;
		}
	}
}
 
 错误版本一:void del_vec_foreach(vector<int>& vec,int target) {
	for (vector<int>::iterator it = vec.begin(); it != vec.end();it++) {
		if (*it == target) {
			it = vec.erase(it);
		}
	}
}
 
 错误版本二:void del_vec_foreach(vector<int>& vec,int target) {
	for (vector<int>::iterator it = vec.begin(); it != vec.end();) {
		if (*it == target) {
			vec.erase(it++);
		}
		else {
			++it;
		}
	}
}
 
 下面两个版本和第一个版本看着几乎差不多,不解释,运行一下见分晓,答应我,以后不要再在这个问题上栽跟头了!!!
 |