вот мой код:
Код: Выделить всё
#include <iterator>
#include "conio.h"
#include <iostream>
#include <set>
#include <algorithm>
#include <vector>
using namespace std;
typedef set<int,less<int> >settype;
settype operator*(const settype &S, const settype &T)
{ settype I;
settype::iterator
firstS=S.begin(),lastS=S.end(),firstT=T.begin(),lastT=T.end(),i=I.begin();
while(firstS!=lastS&&firstT!=lastT)
{
if(*firstS<*firstT)++firstS;else
if(*firstT<*firstS)++firstT;else
{
i=I.insert(i,*firstS++);
++firstT;
}
}
return I;
}
settype operator-(const settype &S, const settype &T)
{ settype U;
settype::iterator
firstS=S.begin(),lastS=S.end(),firstT=T.begin(),lastT=T.end(),i=U.begin();
while(firstS!=lastS&&firstT!=lastT)
i=U.insert(i,(*firstS<*firstT? *firstS--: *firstT--));
while(firstS!=lastS)i=U.insert(i,*firstS--);
while(firstT!=lastT)i=U.insert(i,*firstT--);
return U;
}
void out(const char *s, const settype&S)
{
cout<<s;
copy(S.begin(),S.end(),ostream_iterator<int>(cout," "));
cout<<endl;
}
int bd()
{
int aT[5];
for(int i=0;i<5;i++){
cout<<"Mn 1 element :";cin>>aT[i];
}
int aS[5];
for(int i=0;i<5;i++){
cout<<"Mn 2 element :";cin>>aS[i];
}
settype S(aS,aS+5),
T(aT,aT+5);
out("S= ",S);
out("T= ",T);
out("S*T =",S*T);
out("S-T =",S-T);
getch();
return 0;
}
int main()
{
try{
bd();
}
catch(...)
{
cout<<"situciy";
getch();
}
return 0;
}