赞
踩
正确做法
std::map<int,int*>::iterator iter = mapTemp.find(i);
if( mapTemp.end() != iter )
return iter->second;
return NULL;
1.注意判断空,如果不判断是否为mapTemp.end(),如果用mapTemp[x].second方式获取,系统会自己偷偷插入一个查询的键。 因此直接 return mapTemp[x].second 有很大风险。
2.尽量用iterator 而不是[].因为[] 运算符内部有一次查询,最好就是调用一次find,返回iterator,根据iterator获取值。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。