operator[] 和 insert

operator[] 和 insert:

map的[]操作和其他容器和内置[]没有关系
如果我们通过[]向map中插入or更新值,需要考虑一些东西
1.键已经存在,那么直接进行修改即可
2.键不存在,那么需要 值的默认构造创建一个新的对象,然后返回引用进行赋值

m[1] = 1.5;
m.insert( widget::value_type(1,1.5));

如果使用 operator[] 插入值,那么会浪费默认widget对象的创建和析构、赋值操作


所以 更新最好使用[],插入则是insert。

posted @ 2017-03-20 18:56  Przz  阅读(186)  评论(0编辑  收藏  举报