深度理解:使用字符串作为STL中map对象的key( 二 )

2) 再来看Fun2 , 直觉上 , 其结果应该和Fun1一致 。 但是 , 注意了 , 这里的key的类型是LPCTSTR , 也即是指向一个字符串的指针地址 , 这个地址充当了这个map对象的key , 当我们向find方法传入_T(“dll”)时 , 虽然字符串的字面值一致 , 但是其地址已经不一样了 , 所以 , find方法尝试使用字符串指针地址进行查询匹配时 , 就找不到指定的元素了 。

我们可以通过VS的调试环境观察map对象的内部结构:

1) Fun1

2) Fun2

总结

如有需要使用字符串作为map对象的key , 请认准:map<CString XXX> 。

推荐阅读