首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

c++ 地图取值的有关问题

2013-07-16 
c++ map取值的问题,求助我想用map来记录我的socket,主要代码如下:std::mapLPCTSTR,int sockIDList int

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之类的

热点排行