map<CString,CStringList> m;
CStringList cStringList;
cStringList.AddTail("ff1");
cStringList.AddTail("ff2");
cStringList.AddTail("3");
m.insert(map<CString,CStringList>::value_type("CLogInDlg",cStringList));怎么不行的?

解决方案 »

  1.   

    Compiling...
    LogInDlg.cpp
    D:\workstation\mfc_workstation\SrvRevData\Client\LogInDlg.cpp(103) : warning C4786: 'std::reverse_bidirectional_iterator<std::_Tree<CString,std::pair<CString const ,CStringList>,std::map<CString,CStringList,std::less<CString>,std::allocator<CStringL
    ist> >::_Kfn,std::less<CString>,std::allocator<CStringList> >::iterator,std::pair<CString const ,CStringList>,std::pair<CString const ,CStringList> &,std::pair<CString const ,CStringList> *,int>' : identifier was truncated to '255' characters in the
     debug information
    D:\workstation\mfc_workstation\SrvRevData\Client\LogInDlg.cpp(103) : warning C4786: 'std::reverse_bidirectional_iterator<std::_Tree<CString,std::pair<CString const ,CStringList>,std::map<CString,CStringList,std::less<CString>,std::allocator<CStringL
    ist> >::_Kfn,std::less<CString>,std::allocator<CStringList> >::const_iterator,std::pair<CString const ,CStringList>,std::pair<CString const ,CStringList> const &,std::pair<CString const ,CStringList> const *,int>' : identifier was truncated to '255'
     characters in the debug information
    D:\workstation\mfc_workstation\SrvRevData\Client\LogInDlg.cpp(103) : warning C4786: 'std::pair<std::_Tree<CString,std::pair<CString const ,CStringList>,std::map<CString,CStringList,std::less<CString>,std::allocator<CStringList> >::_Kfn,std::less<CSt
    ring>,std::allocator<CStringList> >::iterator,std::_Tree<CString,std::pair<CString const ,CStringList>,std::map<CString,CStringList,std::less<CString>,std::allocator<CStringList> >::_Kfn,std::less<CString>,std::allocator<CStringList> >::iterator>' :
     identifier was truncated to '255' characters in the debug information
    D:\workstation\mfc_workstation\SrvRevData\Client\LogInDlg.cpp(103) : warning C4786: 'std::pair<std::_Tree<CString,std::pair<CString const ,CStringList>,std::map<CString,CStringList,std::less<CString>,std::allocator<CStringList> >::_Kfn,std::less<CSt
    ring>,std::allocator<CStringList> >::const_iterator,std::_Tree<CString,std::pair<CString const ,CStringList>,std::map<CString,CStringList,std::less<CString>,std::allocator<CStringList> >::_Kfn,std::less<CString>,std::allocator<CStringList> >::const_
    iterator>' : identifier was truncated to '255' characters in the debug information
    c:\program files\microsoft visual studio\vc98\include\utility(21) : error C2558: class 'CStringList' : no copy constructor available
            c:\program files\microsoft visual studio\vc98\include\utility(21) : while compiling class-template member function '__thiscall std::pair<class CString const ,class CStringList>::std::pair<class CString const ,class CStringList>(const class C
    String &,const class CStringList &)'
    Generating Code...
    Compiling...
    Client.cpp
    Generating Code...
    Compiling...
    ClientDoc.cpp
    ClientView.cpp
    MainFrm.cpp
    Public.cpp
    ClientSocket.cpp
    D:\workstation\mfc_workstation\SrvRevData\Client\ClientSocket.cpp(65) : error C2065: 'mapList' : undeclared identifier
    D:\workstation\mfc_workstation\SrvRevData\Client\ClientSocket.cpp(65) : error C2228: left of '.size' must have class/struct/union type
    Generating Code...
    Error executing cl.exe.Client.exe - 3 error(s), 4 warning(s)
      

  2.   

    c:\program files\microsoft visual studio\vc98\include\utility(21) : error C2558: class 'CStringList' : no copy constructor available
    这一句话决定了一切,因为CStringList是从CObject派生而来,
    而在CObject里将拷贝构造和赋值运算符都定义为私有成员方法,这导至了CStringList无法拷贝构造和赋值,如下:
    (从MFC中摘录)
    protected:
    CObject();
    private:
    CObject(const CObject& objectSrc);              // no implementation
    void operator=(const CObject& objectSrc);       // no implementation而在map<CString,CStringList>m;里面,插入时,是需要执行CStringList的拷贝构造的。
      

  3.   

    CStringList” : 没有可用的复制构造函数或复制构造函数声明为“explicit” std::map <CString,CStringList*> m; 
    CStringList cStringList; 
    cStringList.AddTail("ff1"); 
    cStringList.AddTail("ff2"); 
    cStringList.AddTail("3"); 
    m.insert( std::map <CString,CStringList*>::value_type("CLogInDlg",&cStringList)); 
    这样不知道行不行。
      

  4.   


    这样放很危险,这个cStringList临时了,楼主注意一下,CStringList* pStrList = new CStringList();
    m不用了后的时候注意遍历delete   CStringList*。