我无法使用 TCHAR[] 找到映射容器 TCHAR* 的键值?
Can't i find Keyvalue of map container TCHAR* using 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;
}
在这种情况下,我无法使用TCHAR[]找到TCHAR* Keyvalue。为什么我不能这样做,我怎么能找到指针字符串键值使用字符串,包括整数公式?
您不能这样做,因为默认的map
比较器将比较TCHAR
指针,这当然是不同的。最好的方法是使用std::wstring
代替。如果您坚持使用TCHAR
指针,则必须提供自定义比较器。
相关文章:
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- 将函数类成员映射到类本身内部
- 如何在 C# 中映射双 C 结构指针?
- 如何在C++中使用结构生成映射
- 使用std::函数映射对象方法
- 如何加载(或映射)文件部分的最大大小,但适合在Windows上的RAM
- C++映射分割错误(核心转储)
- 内联映射初始化的动态atexit析构函数崩溃
- 使用"std::unordereded_map"映射到"std::list"对象
- 如何从多映射中删除特定的重复项
- 在未初始化映射的情况下,将值插入到映射的映射中
- QT通过C++添加映射QML项目
- 在c++中访问int到类对象的映射时出错
- 在C++中搜索嵌套多映射值
- 错误处理.将系统错误代码映射到泛型
- C++匿名结构作为std::映射值
- 如何从存储在std::映射中的std::集中删除元素
- 递归无序映射
- 我无法使用 TCHAR[] 找到映射容器 TCHAR* 的键值?