【发布时间】:2016-11-14 15:06:48
【问题描述】:
#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?
【问题讨论】:
-
因为没有为 TCHAR* 定义比较运算符
<来取消引用指针并比较字符串值,所以它将比较不正确的指针地址值。您需要定义比较器或使用std::string是否有理由需要在这里使用TCHAR? -
你没有定义
TCHAR。如果您使用非标准功能,您应该告诉我们您的目标是哪个 os/compiler/standard library。void main也不是标准的。