From: http://www.cnblogs.com/kex1n/archive/2011/11/16/2251520.html

在map中插入元素

改变map中的条目非常简单,因为map类已经对[]操作符进行了重载

enumMap[1] = "One";
enumMap[2] = "Two";
.....

这样非常直观,但存在一个性能的问题。插入2时,先在enumMap中查找主键为2的项,没发现,然后将一个新的对象插入enumMap,键是2,值是一个空字符串,插入完成后,将字符串赋为"Two"; 该方法会将每个值都赋为缺省值,然后再赋为显示的值,如果元素是类对象,则开销比较大。我们可以用以下方法来避免开销:

enumMap.insert(map<int, CString> :: value_type(2, "Two"))

insert()方法:若插入的元素的键值已经存在于map中,那么插入就会失败,不会修改元素的键对应的值;若键值在map中查不到,那么就会将该新元素加到map中去。

下标[key]方法:若插入元素的键值已经存在于map中,那么会更新该键值对应的值为新的元素的值;若该键值在map中找不到,那么就会新建一个键值为该键(key)的元素,并将key对应的值赋值为默认值(默认构造函数生成的对象)。

std::map的insert和下标[]访问相关推荐

  1. std::map用法总结

    给出了map的基本用法如插入.查找.删除.遍历等等,同时告诉你如何实现双键map,包括 (1) 只有两个键都匹配才命中目标 (2) 两个键中任意一个匹配就命中目标 可以扩展到多键 (一) 介绍特点:1 ...

  2. C++ map下标访问的问题

    2019独角兽企业重金招聘Python工程师标准>>> 先简单介绍一下map,C++中的map属于STL的范畴,通过key-value的方式保存. map的插入,插入map有两种方式 ...

  3. std::map只修改不用加锁

    std::map创建并初始化之后,不会再有任何的insert和delete键值对的操作.仅有的操作就是不同的线程会访问不同的key,对key对应的value进行修改,请问这种情况下,是否需要加锁? 不 ...

  4. 【c++】映射表std::map

    文章内容为网络搜集内容 std::map 映射表(Map)容器是一个按特定顺序存储以键值对组合而成的元素的关联容器 // <map> template < class Key,cla ...

  5. 关于 std::set/std::map 的几个为什么

    2013-01-20 std::set/std::map (以下用 std::map 代表) 是常用的关联式容器,也是 ADT(抽象数据类型).也就是说,其接口(不是 OO 意义下的 interfac ...

  6. c语言中std::map_在现代C ++中明智地使用std :: map

    c语言中std::map std::map and its siblings(std::multimap, std::unordered_map/multimap) used to be my fav ...

  7. 离奇的std::map、std::set崩溃

    离奇的std::map.std::set崩溃 现象描述 定位之路 1.和windows调用比较,没发现任何问题 2.修改cmakelists.txt,发现也没有什么可以改的,能改的怎么改结果都一样 3 ...

  8. std::set/std::map 的几个为什么

    陈硕 (chenshuo.com) 2013-01-20 std::set/std::map (以下用 std::map 代表) 是常用的关联式容器,也是 ADT(抽象数据类型).也就是说,其接口(不 ...

  9. std::map用法

    std::map用法 STL是标准C++系统的一组模板类,使用STL模板类最大的好处就是在各种C++编译器上都通用. 在STL模板类中,用于线性数据存储管理的类主要有vector, list, map ...

最新文章

  1. 定制Eclipse IDE之界面篇
  2. 凸优化中如何改进GD方法以防止陷入局部最优解
  3. 从人生(论文)的数量追求人生的质量
  4. nexttick使用场景_使用Jest实现Vue自动化测试
  5. cad高程如何提取到cass软件_从CAD平面图中提取坐标生成数据表
  6. zabbix 4.0 安装配置
  7. C#给Winform的button等控件添加快捷键三种方法
  8. FFMPEG ./configure 参数及意义
  9. 全网首发:神奇的WORD文字渲染效果,18个字符一组,每个字符渲染效果不同
  10. html 下拉框设置提示语,为 Html 的 Select 加一个提示语和输入方法
  11. c语言输出成绩与排名,C语言算成绩 要求输完两个分数后 同时输出两个分数换算出来的成绩...
  12. 计算机删除行快捷键,删除快捷键是什么?电脑删除快捷键有哪些?
  13. [已推荐到体育博客,点击查看更多精彩内容] 篮球上的幽默时刻(多图)
  14. HTML+CSS+Javascript简易记账本(localStorage)
  15. 动手学PyTorch | (35) 长短期记忆(LSTM)
  16. org.hibernate.SessionException: Session was already closed
  17. 巴菲特旗下公司持有470亿美元苹果股票 他用的却是20美元的三星翻盖机
  18. 单片机 P0口、P1口 寄存器和引脚的不同
  19. 有赞前端 UI框架「Vant」在离线无网络环境中使用 icon 无法显示的问题
  20. Win7下安装Qt3D库

热门文章

  1. 活期储蓄账目管理系统
  2. Delphi工具之TDUMP
  3. 无线运维——J2ME和WAP运维方式的优缺点
  4. python db2查询_如何将DB2查询转换为python脚本
  5. K-Means聚类算法思想及实现
  6. 创建字符串枚举的最好方法
  7. unity中创建游戏场景_在Unity中创建Beat Em Up游戏
  8. JavaScript(ES6)传播算子和rest参数简介
  9. web开发环境_Web开发人员的开发环境
  10. 循环 直到 python_如果您在Python中存在慢循环,则可以对其进行修复……直到无法解决为止...