Bonjour,
je souhaite utiliser une multimap pour associer un chaine avec une classe comme montré ci dessous :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 class CDataInfo { public: CDataInfo() { }; ~CDataInfo() { }; int nSFID; int nRecNo; int nRecLen; int nRecOffset; int nDataType; int nDataLen; }; typedef multimap<CString, CDataInfo>::iterator CDataListIter; class CDataList { public: CDataList() { m_It = NULL;}; ~CDataList() { }; void Clear() { m_DataInfoList.clear(); } void AddTag( CString strTag, int nSFID, int nRecNo, int nRecLen, int nRecOffset, int nDataType, int nDataLen) { m_DataInfo.nSFID = nSFID; m_DataInfo.nRecNo = nRecNo; m_DataInfo.nRecLen = nRecLen; m_DataInfo.nRecOffset = nRecOffset; m_DataInfo.nDataType = nDataType; m_DataInfo.nDataLen = nDataLen; m_DataInfoList.insert(strTag, DataInfo); ????????? ERREUR DE COMPIL } CDataListIter GetHead() { return m_DataInfoList.begin();} CDataListIter GetTail() { return m_DataInfoList.end(); } long GetSize() { return m_DataInfoList.size(); } protected: CDataInfo m_DataInfo; multimap<CString, CDataInfo> m_DataInfoList; CDataListIter m_It; };
J'ai une erreur de compilation :
d:\projet en cours\borne_160805\carddata.h(152) : error C2664: 'class std::_Tree<class CString,struct std::pair<class CString const ,class CDataInfo>,struct std::multimap<class CString,class CDataInfo,struct std::less<class CString>,class std::alloc
ator<class CDataInfo> >::_Kfn,struct std::less<class CString>,class std::allocator<class CDataInfo> >::iterator __thiscall std::multimap<class CString,class CDataInfo,struct std::less<class CString>,class std::allocator<class CDataInfo> >::insert(cl
ass std::_Tree<class CString,struct std::pair<class CString const ,class CDataInfo>,struct std::multimap<class CString,class CDataInfo,struct std::less<class CString>,class std::allocator<class CDataInfo> >::_Kfn,struct std::less<class CString>,clas
s std::allocator<class CDataInfo> >::iterator,const struct std::pair<class CString const ,class CDataInfo> &)' : cannot convert parameter 1 from 'class CString' to 'class std::_Tree<class CString,struct std::pair<class CString const ,class CDataInfo
>,struct std::multimap<class CString,class CDataInfo,struct std::less<class CString>,class std::allocator<class CDataInfo> >::_Kfn,struct std::less<class CString>,class std::allocator<class CDataInfo> >::iterator'
No constructor could take the source type, or constructor overload resolution was ambiguous
Et je ne comprends pas exactement pourquoi la syntaxe n'est pas bonne.
Partager