Store class objects with overloaded operators in a list. : list « List « C++






Store class objects with overloaded operators in a list.

  
#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 &o1,const myclass &o2);
  friend bool operator>(const myclass &o1,const myclass &o2);
  friend bool operator==(const myclass &o1,const myclass &o2);
  friend bool operator!=(const myclass &o1,const myclass &o2);
};
   
bool operator<(const myclass &o1, const myclass &o2)
{
  return o1.sum < o2.sum;
}
   
bool operator>(const myclass &o1, const myclass &o2)
{
  return o1.sum > o2.sum;
}
   
bool operator==(const myclass &o1, const myclass &o2)
{
  return o1.sum == o2.sum;
}
   
bool operator!=(const myclass &o1, const myclass &o2)
{
  return o1.sum != o2.sum;
}
   
int main()
{
  int i;
   
  list<myclass> lst1;
  for(i=0; i<10; i++) lst1.push_back(myclass(i, i));
   
  list<myclass>::iterator p = lst1.begin();
  while(p != lst1.end()) {
    cout << p->getsum() << endl;
    p++;
  }
   
  list<myclass> lst2;
  for(i=0; i<10; i++) lst2.push_back(myclass(i*2, i*3));
   
  p = lst2.begin();
  while(p != lst2.end()) {
    cout << p->getsum() << endl;
    p++;
  }
   
  // now, merget lst1 and lst2
  lst1.merge(lst2);
   
  p = lst1.begin();
  while(p != lst1.end()) {
    cout << p->getsum() << " ";
    p++;
  }
   
  return 0;
}
  
    
  








Related examples in the same category

1.Instantiating an STL List of Integers
2.Use generic list to create a list of chars
3.Use generic list to create list of strings
4.Store class objects in a listStore class objects in a list
5.Use std::copy to print all elements in a list
6.Pass list to a function
7.Uses ostream_iterator and copy algorithm to output list elements
8.Add elements in a multiset to a list
9.access list
10.Comparison Algorithms
11.Add elements in a set to a list
12.Merge two lists.Merge two lists.
13.Using the list as a container for double value