我是新手std::map
,最近才开始使用它。
我正面临这些映射之一的编译问题。
我有一个自定义结构,并且正在尝试CString
使用该结构类型的对象创建 a 的映射。
不幸的是,我遇到了问题
Error 3 error C2664: 'std::pair<_Ty1,_Ty2>::pair(const std::pair<_Ty1,_Ty2> &)' : cannot convert parameter 1 from 'ItemInfo *' to 'const std::pair<_Ty1,_Ty2> &'
ItemInfo
是结构,我试图使用CString
.
这就是我定义映射的方式..
struct ItemInfo
{<some code>}
class XXXX
{
std::map<CString, ItemInfo> myMap;
}
我不确定如何解决这个问题,或者我应该看什么。
如果有人能告诉我这个错误是什么,以及如何解决它,将不胜感激,谢谢。
编辑
好的 - 我搜索了很多,但仍然无法在我的insert()
函数中看到错误。这就是我使用的:
mAlarmListMpa.insert(tempIterator /*the iterator over the map */, std::pair<CString, ItemInfo>(tagname , info));
编辑 来自输出的更多信息:
`
c:\program 文件 (x86)\microsoft visual studio 10.0\vc\include\xmemory(208): 错误 C2664: 'std::pair<_Ty1,_Ty2>::pair(const std::pair<_Ty1,_Ty2> &)' : 无法将参数 1 从 'ItemInfo' 转换为 'const std::pair<_Ty1,_Ty2> &' 1> with 1> [ 1> _Ty1=const CString, 1> _Ty2=ItemInfo 1> ] 1> 原因: 无法使用 1> [ 1> _Ty1=const CString, 1> _Ty2=ItemInfo 1> ] 1> 从 'ItemInfo' 转换为 'const std::pair<_Ty1,_Ty2>' 1> 1> 没有用户定义的转换运算符可以执行此转换的可用的,或者不能调用运算符 `