#include <iostream>
#include <list>
#include <cstring>
using namespace std;
class myclass {
int a, b;
int sum;
public:
myclass() {
a = b = 0;
}
myclass(int i, int j) {
a = i;
b = j;
sum = a + b;
}
int getsum() {
return sum;
}
friend bool operator<(const myclass &object1, const myclass &object2);
friend bool operator>(const myclass &object1, const myclass &object2);
friend bool operator==(const myclass &object1, const myclass &object2);
friend bool operator!=(const myclass &object1, const myclass &object2);
};
bool operator<(const myclass &object1, const myclass &object2)
{
return object1.sum < object2.sum;
}
bool operator>(const myclass &object1, const myclass &object2)
{
return object1.sum > object2.sum;
}
bool operator==(const myclass &object1, const myclass &object2)
{
return object1.sum == object2.sum;
}
bool operator!=(const myclass &object1, const myclass &object2)
{
return object1.sum != object2.sum;
}
int main()
{
int i;
list<myclass> listObject1;
for(i = 0; i < 10; i++)
listObject1.push_back(myclass(i, i));
cout << "First list: ";
list<myclass>::iterator p = listObject1.begin();
while(p != listObject1.end()) {
cout << p->getsum() << " ";
p++;
}
cout << endl;
list<myclass> listObject2;
for(i = 0; i < 10; i++)
listObject2.push_back(myclass(i*2, i*3));
cout << "Second list: ";
p = listObject2.begin();
while(p != listObject2.end()) {
cout << p->getsum() << " ";
p++;
}
cout << endl;
listObject1.merge(listObject2);
cout << "Merged list: ";
p = listObject1.begin();
while(p != listObject1.end()) {
cout << p->getsum() << " ";
p++;
}
return 0;
}
|