[STL] 遍历删除两个vector中交集
1 #include <vector> 2 #include <string> 3 #include <algorithm> 4 5 using namespace std; 6 7 int main() 8 { 9 vector<string> vStr1; 10 vStr1.push_back("001"); 11 vStr1.push_back("002"); 12 vStr1.push_back("003"); 13 14 vector<string> vStr2; 15 vStr2.push_back("001"); 16 vStr2.push_back("002"); 17 18 /* 19 for ( auto itr=vStr2.begin(); itr!=vStr2.end(); ++itr ) 20 { 21 auto itrFind=find(vStr1.begin(),vStr1.end(),*itr); 22 if ( itrFind != vStr1.end() ) 23 { 24 vStr1.erase(itrFind); 25 } 26 } 27 */ 28 29 for ( auto itr=vStr1.begin(); itr!=vStr1.end(); ) 30 { 31 if ( find(vStr2.begin(),vStr2.end(),*itr) != vStr2.end() ) 32 { 33 itr = vStr1.erase(itr); 34 } 35 else 36 { 37 ++itr; 38 } 39 } 40 41 return 0; 42 }