方法一: #include <iostream> #include <vector> #include <algorithm> using namespace std; //bool compare(int d) //{ // return d == 3; //} int main() { vector<int> ivec; int i; vector<int>::iterator it; for(i = 0;i < 5;++i) ivec.push_back(i); for(i = 0;i < 5;++i) ivec.push_back(i); //it = remove_if(ivec.begin(),ivec.end(),compare); it = remove(ivec.begin(),ivec.end(),3); ivec.erase(it,ivec.end()); for(vector<int>::iterator it = ivec.begin();it != ivec.end();++it) cout<<*it<<endl; return 0; } 方法二: for(subiter = STVector.begin(); subiter != STVector.end() ;) { if (GVector[*subiter]._id == -1) subiter = STVector.erase(subiter); else subiter++; }