用map:
#include <iostream>
#include <map>
using namespace std;
int main()
{
int a[] = {1,2,3,4,5,6,7,8,9};
int b[] = {2,4,6,8,10};
int c[10];
map<int, int> m;
int len_a = sizeof(a)/sizeof(a[0]);
int len_b = sizeof(b)/sizeof(b[0]);
int i, count=0;
for(i=0; i<len_a; i++)
m[a[i]] = 1;
for(i=0; i<len_b; i++)
{
if(m.find(b[i])->second==1)
{
m[b[i]] = 2;
c[count++] = b[i];
}
}
for(i=0; i<count; i++)
cout<<c[i]<<" ";
cout<<endl;
return 0;
}
用bitset
#include <iostream>
#include <bitset>
#include <set>
#include<vector>
using namespace std;
//求集合a和集合b的交集
vector<int> GetIntersection(set<int>a,set<int>b)
{
bitset<2^32> bs(0);//创建一个位数组来存储a中存在的数
vector<int &g