当前位置: 首页 > news >正文

vector,map 注意事项

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

###1.关于vector的越界访问:

std::vector<int> list;
for (int i = 0; i < 5; i++) {
  list.push_back(i);
}
for (int i = 0; i < 6; i++) {
  std::cout << list[i];
}

首先以上的代码可以正确编译通过并运行的,不过list[5]是0,在vector中,如果通过[i]下标访问元素,是不会进行越界检查的。所以一般情况不要通过下标来直接访问,建议使用

 list.ai[i];    //返回索引idx所指的数据,如果idx越界,抛出out_of_range。`

###2.map元素访问 对于map使用下标操作,如果该关键字不存在容器,容器则会添加该关键字到容器中 用find来代替下标操作:

 auto it = maps.find(id);
 if (it == maps.end())  //not find

map是红黑树,unordered_map是基于hash值的查找,对于一般key无序的推荐用unordered_map,这样性能会好点,以上是vector和map使用过程中 如果不注意的,会出一些问题。

转载于:https://my.oschina.net/u/156466/blog/668499

相关文章:

  • Atiti. Php Laravel 5.1 环境搭建以及  error 排除
  • tomcat配置文件server.xml详解
  • Nodejs和JavaWeb协助开发
  • JAVA 位操作学习
  • idea演示
  • F5 实现pool池转发
  • ie7下a/a标签不反应
  • MapReduce编程实例
  • iOS开发数据库篇—SQLite简单介绍
  • iOS开发拓展篇—音效的播放
  • 基于COOKIE的点击流数据仓库构建思路(一)
  • Tomcat热部署和虚拟目录配置
  • 被遗忘的Logrotate
  • 压合细节
  • windows下安装python科学计算环境,numpy scipy scikit ,matplotlib等
  • 【React系列】如何构建React应用程序
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • Android组件 - 收藏集 - 掘金
  • css系列之关于字体的事
  • ES6之路之模块详解
  • javascript从右向左截取指定位数字符的3种方法
  • Java-详解HashMap
  • node 版本过低
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • Promise面试题2实现异步串行执行
  • QQ浏览器x5内核的兼容性问题
  • 翻译:Hystrix - How To Use
  • 简单易用的leetcode开发测试工具(npm)
  • 力扣(LeetCode)21
  • 前端相关框架总和
  • 用Visual Studio开发以太坊智能合约
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • #define 用法
  • #define,static,const,三种常量的区别
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (39)STM32——FLASH闪存
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (十一)c52学习之旅-动态数码管
  • (五)c52学习之旅-静态数码管
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算
  • .Net Memory Profiler的使用举例
  • .Net 垃圾回收机制原理(二)
  • .NET 使用 XPath 来读写 XML 文件
  • .NET框架
  • .NET微信公众号开发-2.0创建自定义菜单
  • .net中我喜欢的两种验证码
  • /dev下添加设备节点的方法步骤(通过device_create)
  • @Autowired和@Resource的区别
  • @RequestBody详解:用于获取请求体中的Json格式参数
  • [20150904]exp slow.txt