【博客46】map的find和operator[]的不同

内容: map的find和map的operator[]都可以用来定位特定元素,但是使用的时候,两者还是有差别的。

情况一:使用find的时候
【博客46】map的find和operator[]的不同
结果:
【博客46】map的find和operator[]的不同
分析:可以看到当find找不到相应的值的时候,那么它会返回执行end()的迭代器,end其实是有效数据的下一个数据,是对应于容器有效区间的右开区间。

情况二:使用了[]来查看相应键值对应的实值
【博客46】map的find和operator[]的不同
结果:
【博客46】map的find和operator[]的不同
分析:可以看到当你使用my_map[]时,如果相应的这个还没有创建,那么就会创建一个,用初始值来初始化。代码中,my_map[4]第一次使用时,还没有插入过,那么就会被插入一个my_map[4],值为默认值。

附上源码:

find的const形参版本和非const形参版本:
【博客46】map的find和operator[]的不同

operator[]的const形参版本和非const形参版本:
【博客46】map的find和operator[]的不同
【博客46】map的find和operator[]的不同

注意: 最后说一下两者的返回值不一样的哦!find返回的是迭代器,operator[]返回的是实值了!

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