[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 }
原文地址:https://www.cnblogs.com/lca1826/p/6520585.html