我是C++新手,我需要你的幫助。如何在C++中使用Cmap。將CString映射到UINT
我的目標是比較C++中的一些字符串並存儲相同的字符串。 要做到這一點。我將字符串散列爲UINT,然後檢查UINTS並存儲相同的UINTS。例如..我有2000文件的文本,他們每個人都有2行。使用散列映射,我將它們散列爲一堆UINTS。那麼我一起存儲相同的UINTS。最後,我想檢索相同的文件。所以,我使用Cmap。將UINTS映射到他們的文檔。我會做這個程序來提高記憶效率。
我使用這個代碼:
CString keyExample("This is a sample text");
LPCTSTR lpStr = (LPCTSTR)keyExample;
CMapStringToOb hashObject;
UINT keyExampleTemp=hashObject.HashKey(lpStr);
cout<< keyExampleTemp<<endl;
CMap<UINT, UINT, CString, CString*> mymap;
CString value=mymap[keyExampleTemp];
cout<<value;
如果我評論的最後3行,我會得到一個UINT爲「這是一個樣本文本」,但是,如果我去掉最後3行,我會得到這個錯誤,這意味着該問題是否與CMAP
錯誤C2664:
'CMap<KEY,ARG_KEY,VALUE,ARG_VALUE>::SetAt'
:無法從'CString'
轉換參數2'ATL::CStringT<BaseType,StringTraits> '
如果你是新來的C++,然後請你幫個忙,並保持遠地從與MFC類似的古老C類文物。 – ildjarn