Data Structure C++

#include 
#include 
#include 
using namespace std;
class Address {
  string name;
  string street;
  string city;
  string state;
  string zip;
public:
  Address() {
    name = street = city = state = zip = "";
  }
  Address(string n, string s, string c, string st, string z) {
    name = n;
    street = s;
    city = c;
    state = st;
    zip = z;
  }
  string getname() { 
     return name; 
  }
  string getcity() { 
     return city; 
  }
  string getstreet() { 
     return street; 
  }
  string getstate() { 
     return state; 
  }
  string getzip() { 
     return zip; 
  }
};
// List sorted by name.
bool operator<(Address &a, Address &b)
{
  return a.getname() < b.getname();
}
// List searched by name.
bool operator==(Address &a, Address &b)
{
  return a.getname() == b.getname();
}
void display(list
 &listObject) {
  list
::iterator p;
  for(p = listObject.begin(); p != listObject.end(); p++) {
    cout << p->getname() << ": ";
    cout << p->getstreet() << ", ";
    cout << p->getcity() << ", ";
    cout << p->getstate() << " ";
    cout << p->getzip() << endl;
  }
}
int main()
{
  list
 mlistObjectA, mlistObjectB;
  mlistObjectA.push_back(Address("J", "1102 St", "Mission", "TX", "78572")); 
  mlistObjectA.sort();
  mlistObjectB.sort();
  // merge mailings lists
  mlistObjectA.merge(mlistObjectB);
  cout << "List A after sorting and merging.\n";
  display(mlistObjectA);
  cout << "List A now has " << mlistObjectA.size();
  cout << " entries.\n";
  // remove duplicates
  mlistObjectA.unique();
  cout << "List A after removing duplicates.\n";
  display(mlistObjectA);
  cout << "List A now has " << mlistObjectA.size();
  cout << " entries.\n";
  return 0;
}