#include <iostream>
#include <set>
using namespace std;
typedef struct tagStudentInfo
{
int nID;
string strName;
bool operator <(tagStudentInfo const& _A) const//升序排列
{
if(nID<_A.nID)
return true;
if(nID == _A.nID)
return strName.compare(_A.strName) < 0;
return false;
}
}sInfo,*PsInfo;
int main()
{
set<sInfo>setS;
sInfo stuInfo;
stuInfo.nID = 10;
stuInfo.strName = "test1";
setS.insert(stuInfo);
stuInfo.nID = 20;
stuInfo.strName = "test2";
setS.insert(stuInfo);
set<sInfo>::iterator sIter;
for(sIter=setS.begin(); sIter!=setS.end(); sIter++)
{
cout <<(*sIter).nID <<" "<< (*sIter).strName << endl;
}
set<int>a;
set<int>b;
set<int>c;
set<int>d;
set<int>e;
a.insert(1);
a.insert(2);
a.insert(3);
a.insert(4);
a.insert(5);
b.insert(3);
b.insert(4);
b.insert(5);
set_union(a.begin(), a.end(), b.begin(), b.end(), inserter(c, c.begin()));
set<int>::iterator s;
for(s=c.begin(); s!=c.end(); s++)
{
cout <<(*s)<<",";
}
cout << endl;
set_intersection(a.begin(), a.end(), b.begin(), b.end(), inserter(d, d.begin()));
for(s=d.begin(); s!=d.end(); s++)
{
cout <<(*s) <<",";
}
cout << endl;
set_difference(a.begin(), a.end(), b.begin(), b.end(), inserter(e, e.begin()));
for(s=e.begin(); s!=e.end(); s++)
{
cout <<(*s)<<",";
}
cout <<endl;
return 0;
}
|