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) |