簡體   English   中英

std :: pair <_Ty1,_Ty2> :: pair <_Ty1,_Ty2>&無法轉換參數

[英]std::pair<_Ty1,_Ty2>::pair<_Ty1,_Ty2>& Cannot convert parameter

我是std::map新手,最近才開始使用它。

我正面臨着其中一個映射的編譯問題。

我有一個自定義結構,我正在嘗試使用該結構類型的對象創建CString的映射。

不幸的是,我面臨着一些問題

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 files(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> 1> [1> _Ty1 = const CString,1> _Ty2 = ItemInfo 1>] 1>原因:無法從'ItemInfo'轉換為'const std :: pair <_Ty1,_Ty2>'1> 1> [1> _Ty1 = const CString,1> _Ty2 = ItemInfo 1>] 1>沒有用戶定義轉換運算符可用於執行此轉換,或運算符不能被稱為`

你沒有向我們展示的一些代碼是試圖傳遞指向ItemInfo的指針,它應該傳遞一個鍵值對,大概是std::pair<CString, ItemInfo> 完整的錯誤消息應該顯示哪行代碼正在執行該操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM