blob: 743791b09a08dc6548acd751334ebf9da57dcd73 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
#include <iostream.h>
#include "flexset.h"
#include <unistd.h>
int iseven(const int &y){return !(y&1);}
struct orec;
struct irec{
int key, data;
irec(int nkey=0, int ndata=0){key=nkey;data=ndata;}
int operator<(const irec &b) const{return key<b.key;}
int operator==(const irec &b) const{return key==b.key;}
int operator<(const orec &b) const;
int operator==(const orec &b) const;
};
struct orec{
int key;
char *str;
orec(int nkey=0){key=nkey;}
int operator<(const orec &b) const{return key<b.key;}
int operator==(const orec &b) const{return key==b.key;}
int operator<(const irec &b) const{return key<b.key;}
int operator==(const irec &b) const{return key==b.key;}
};
int irec::operator<(const orec &b) const{return key<b.key;};
int irec::operator==(const orec &b) const{return key<b.key;};
void main(){
flexset<irec> arr1, arr2, arr3, arr4, arr5;
flexset<orec> iarr1, iarr2;
irec tst;
int ii;
for (ii=0;ii<20;ii++){
tst.key=rand()%20;
tst.data=ii;
arr1.insert(tst);
}
for (ii=0;ii<20;ii++){
iarr1.insert(rand()%20);
}
setdifferences(arr1, iarr1, arr2, iarr2);
for (ii=0;ii<arr1.getSize();ii++)
cout<<arr1[ii].key<<" : "<<arr1[ii].data<<endl;
cout<<endl;
for (ii=0;ii<iarr1.getSize();ii++)
cout<<iarr1[ii].key<<endl;
cout<<endl;
for (ii=0;ii<arr2.getSize();ii++)
cout<<arr2[ii].key<<" : "<<arr2[ii].data<<endl;
cout<<endl;
for (ii=0;ii<iarr2.getSize();ii++)
cout<<iarr2[ii].key<<endl;
cout<<endl;
}
|