C++ Can';我是否使用TCHAR[]查找映射容器TCHAR*的键值? #包括 #包括 使用namesapce-std; void main() { 地图; 插入地图(作比较(L“DOG1”,1)); 插入地图(作比较(L“DOG2”,2)); TCHAR-szTem[128]; wsprintf(szTem,L“狗%d”,1); 迭代器iter=map.find(szTem); 第二个
您不能这样做,因为默认的C++ Can';我是否使用TCHAR[]查找映射容器TCHAR*的键值? #包括 #包括 使用namesapce-std; void main() { 地图; 插入地图(作比较(L“DOG1”,1)); 插入地图(作比较(L“DOG2”,2)); TCHAR-szTem[128]; wsprintf(szTem,L“狗%d”,1); 迭代器iter=map.find(szTem); 第二个,c++,stl,C++,Stl,您不能这样做,因为默认的map比较器将比较TCHAR指针,这当然是不同的。最好的方法是使用std::wstring来代替。如果您坚持使用TCHAR指针,您必须提供。您不能这样做,因为默认的mapcomparator将比较TCHAR指针,这当然会有所不同。最好的方法是使用std::wstring。如果坚持使用TCHAR指针,则必须提供。因为比较运算符没有定义TCHAR。如果使用非标准功能,则你应该告诉我们你的目标是哪个操作系统/编译器/标准库。void main也不是标准的。因为比较运算符你没有定
map
比较器将比较TCHAR
指针,这当然是不同的。最好的方法是使用std::wstring
来代替。如果您坚持使用TCHAR
指针,您必须提供。您不能这样做,因为默认的map
comparator将比较TCHAR
指针,这当然会有所不同。最好的方法是使用std::wstring
。如果坚持使用TCHAR
指针,则必须提供。因为比较运算符没有定义TCHAR
。如果使用非标准功能,则你应该告诉我们你的目标是哪个操作系统/编译器/标准库。void main
也不是标准的。因为比较运算符你没有定义TCHAR
。如果你使用非标准功能,你应该告诉我们你的目标是哪个操作系统/编译器/标准库。void main
也不是标准的。W如果TCHAR
不是wchar\u t
,那么使用std::string
,或者定义一个宏,以防您需要支持这两种字符串。您不需要宏。只需使用std::basic\u string
来支持任何TCHAR
。如果TCHAR
不是wchar\u t
,那么使用std::string
,或者d>定义一个宏,以防您需要同时支持这两种字符串。您不需要宏。只需使用std::basic_string
即可支持任何TCHAR
。
#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;
}