c++ map取值的问题,求助
我想用map来记录我的socket,主要代码如下:
std::map<LPCTSTR,int> sockIDList;
int sock;
if((sock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP))==INVALID_SOCKET){
return 0;
}
sockIDList[ComNum] = sock;
但是在另外的一个方法中取值时:
return sockIDList[IP];
就会出现第一次是0,第二次是正确值,第三次又是0,的问题!
[解决办法]
LPCTSTR
实际上就是const TCHAR*
如果有2个内容一样的字符串,map只会去比较它们的地址而不是它们的值
导致你在查找时可能会找不到
我不清楚你的问题是否是这个原因造成的,不管怎样,建议map的key不要用指针,而是换成CString或者string之类的