我不能使用TCHAR []找到地图容器TCHAR *的Keyvalue?

时间:2016-11-14 15:06:49

标签: c++ stl

#include<iostream>
#include<map>

using namesapce std;
void main()
{
   map<const TCHAR*, int> Map;
   Map.insert(make_pare(L"DOG1",1));
   Map.insert(make_pare(L"DOG2",2));

   TCHAR szTem[128];
   wsprintf(szTem,L"DOG%d",1);

   map<const TCHAR*, int>::iterator iter = Map.find(szTem);

   cout << iter->second << endl;
}

像这种情况一样,我找不到使用TCHAR []的TCHAR * Keyvalue。 为什么我不能这样做,如何使用包含整数公式的字符串找到指针字符串Keyvalue?

1 个答案:

答案 0 :(得分:2)

你不能这样做,因为默认的map比较器将比较TCHAR指针,当然这将是不同的。最好的方法是使用std::wstring代替。如果您坚持使用TCHAR指针,则必须提供custom comparator