【博客21】注意:对map使用insert来插入而不使用operator[]来插入!

2022-12-25,,,,

内容: 今天记录下用map时,用insert插入比用[]进行插入时的好处。首先,[]这个用来插入还不太好,因为它是假设[X]=Y,当X键还没插入时,它就插入Y,当有值时不插入Y,但是会修改它的键值为Y,那么你可能忘记了判断X存在不存在,你就插入,可能导致它已经存在,但是值被你修改了,这可能不是你想要看到的,也许你的本意是不存在就插入,存在了就不插入。为了自己不混淆,可以采取insert插入,[]修改的方法。同时下面代码也讲述下insert比用[]插入快在哪里

代码:

测试结果:

结果分析:由于是要模拟这种情况,主要问题是要说明效率问题,所以我这个类的其他方法就不一一设计出来了。大家可以看到使用operator[]来插入时,是先构造一个A类临时对象出来,然后再对这个临时对象赋值的。但是如果使用insert来插入的话,是根据你的值,直接的来构造一个对象。所以insert插入会比较快的,特别是当类对象成员较多的时候。

大三学生一枚,文章均非抄袭或者模仿,均为原创,仅代表个人观点,如果文章有错误的地方,欢迎在下方提出,每条评论我都会去认真看并回复,同时感谢指正的前辈。