我定义了一个类 CElement
然后用链表存储;
typedef list<CElement*> LineList;
list<LineList> m_ElemList;存储没有问题,但是存进去后再取出来,数据全部错误!
我是想实现广义表的形式,链表存储链表,请各位指教!

解决方案 »

  1.   

    CElement e;
    LineList lst;
    lst.push_back(&e);
    m_ElemList.push_back(lst);
      

  2.   

    对象析构了,
    CElement e; 
    LineList lst; //typedef list <CElement*> LineList;
    lst.push_back(&e);想想吧 
    CElement pE = new CElement ; 
    LineList lst;//自己分配,或则全局or成员
    lst.push_back(&e);
      

  3.   

    对象析构了,
    CElement e; 
    LineList lst; //typedef list <CElement*> LineList;
    lst.push_back(&e);想想吧 
    CElement pE = new CElement ; 
    LineList lst;//自己分配,或则全局or成员
    lst.push_back(&e);
      

  4.   

    很有可能是对象析构的问题,如果你设置和读取不在一个函数内,或者超出了变量的作用于,或者变量被重用。
    建议改成:
    typedef list <CElement*> LineList; 
    list <LineList*> m_ElemList; 
    CElement *e = new CElement; 
    LineList *lst = new LineList; 
    lst.push_back(e); 
    m_ElemList.push_back(lst);
    都采用new的方式来创建。