STL MAp的插入的问题

嬴政爱天下 2012-02-29 09:38:14
在map中插入元素
  三种插入方式:  
 2.1.1用insert方法插入pair对象:   

 enumMap.insert(pair<int, Cstring>(1, “One”));  

 2.1.2 用insert方法插入value_type对象:   

enumMap.insert(map<int, Cstring>::value_type (1, “One”));

问百科上查找 关于MAP 的资料, 这插入数据有点迷糊了..



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


资料上显示的, 这两种方式几乎没区别..

但是这个 pair 与 value_type 难道就一点儿区别没有? 没有一丁点儿区别,
干嘛还分两种插入方式 求解释一下..

之前用的比较多的是 Vector和List 最近查看资料发现这个MAP关联式容器 好像存储数据与查找好像更加方便快捷似的
...全文
140 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
gold_water 2012-03-01
  • 打赏
  • 举报
回复
数据量不大的话,没必要考虑效率吧.
quwei197874 2012-02-29
  • 打赏
  • 举报
回复
想要效率高用红黑树吧
  • 打赏
  • 举报
回复
valud_type 就是pair类型的,只是换个方法而已

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧