Got a class in which I need a double LinkList (X). This DLList X has another DoubleLinkList (Y) within its nodes.

Now I'm using STL List.h template. The issue I'm facing maybe very simple for you but a little confusing for me..... Hoping that someone can help me with it.

class Paul
{

public: Paul(); //Construction
~Paul(); //Destructor
CreateList();

private:
typedef struct XNode
{
long country;
list <CString> csCities;
};
list <XNode> XList,
}

Question:
a) how will I initialise this XList?
b) If I want to pass this xList as a ref variable in a funtion, how will that be done?
c) how will I create a new XNode? Basically, anything especial I have to do for csCities list creation?
c) How will the destructor work?

Thanks for your kind perusal.