std--map find 陷阱

std--map find 陷阱正确做法 std map int int iterator iter mapTemp find i if mapTemp end iter return iter gt second return NULL 1 注意判断空 如果不判断是否为 mapTemp end int

大家好,我是讯享网,很高兴认识大家。

正确做法

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获取值。

小讯
上一篇 2025-04-09 20:51
下一篇 2025-01-27 21:13

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/71946.html