CStringList s1,s2,s3;
s1.AddTail("1");
s1.AddTail("11"); list<CStringList> listCS;
listCS.push_back(s1);

解决方案 »

  1.   

    以上代码 出现错误
    error C2558: class 'CStringList' : no copy constructor available
            c:\program files\microsoft visual studio\vc98\include\xmemory(66) : see reference to function template instantiation 'void __cdecl std::_Construct(class CStringList *,const class CStringList &)' being compiled
    Error executing cl.exe.这是什么原因呢?当我把list<CStringList> listCS;中的CStringList换成其他类型,如CString 就没问题
    这是为什么呢
      

  2.   

    STL容器是值拷贝,需要对象有复制构造函数,CStringList没有,所以操作失败,可以改用指针或引用。
    list<CStringList*>
      

  3.   

    存指针
    list<CStringList*>
    listCS.push_back(&s1);
    不过s1最好还是new出来吧,清空或者erase的时候delete
      

  4.   

    既然要用STL,干脆把CStringList换成list<string>吧