Chinaunix首页 | 论坛 | 博客
  • 博客访问: 65827
  • 博文数量: 42
  • 博客积分: 1730
  • 博客等级: 上尉
  • 技术积分: 430
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-02 13:06
文章分类

全部博文(42)

文章存档

2011年(1)

2009年(41)

我的朋友

分类: C/C++

2009-11-18 14:37:11

operate[]和insert在map应用中的比较
1:插入更新的时候,用insert
m[k]=v 等价于下面
typedef map KeyValue;
pair result = m.insert(KeyValue::value_type(1, v()));
result.first->second = 5.0;
m.insert(KeyValue::value_type(1,5.0));
减少了v()默认对象的构造和析构
2:修改value的时候用operate[]
m.insert(KeyValue::value_type(k,v)).first->second = v;
而m[k]=v 没有中间的value_type包含的对象的构造和析构过程
阅读(362) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~