std::map find 陷阱
2016-05-17 11:46
260 查看
正确做法
1.注意判断空,如果不判断是否为mapTemp.end(),如果用mapTemp[x].second方式获取,系统会自己偷偷插入一个查询的键。 因此直接 return mapTemp[x].second 有很大风险。
2.尽量用iterator 而不是[].因为[] 运算符内部有一次查询,最好就是调用一次find,返回iterator,根据iterator获取值。
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获取值。
相关文章推荐
- 阅读笔记08
- RT-Thread的CPU使用率计算
- 苹果下如果安装nginx,给nginx安装markdown第三方插件
- HDU1054 Strategic Game(二分匹配)
- C#清除WebBrowser中Cookie缓存的方法
- 获取SHA1值
- Xamarin.Forms之PCLStorage
- callback to handle completion of pipe
- 解决linux不能上外网的问题
- The Three Most Important Things You Look for in Your Employment Relationship
- 2016 UESTC Training for Dynamic Programming D - 柱爷的恋爱 区间dp、记忆化搜索
- 2016 UESTC Training for Dynamic Programming C - 柱爷的下凡 预处理打表、背包问题
- tb740605_2012
- 软件开发过程-Python集成开发环境
- 在ASP.NET 2.0中操作数据之五十八:在程序启动阶段缓存数据
- 04-时序逻辑电路设计之计数器——小梅哥FPGA设计思想与验证方法视频教程配套文档
- polymer 1.0 dom-repeat filter only runs once
- 真实大起底:一名黑马程序员的就业经历
- CentOS 7 (无盘安装)PXE服务器的搭建(失败求助版)
- H5元素以及属性