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关联式容器 好像存储数据与查找好像更加方便快捷似的