std::map的insert和下标[] *** 作区别

std::map的insert和下标[] *** 作区别,第1张

insert 和下标 *** 作都可以用来添加元素,但是两者也有区别。

insert 接受一个 pair 参数,并且返回一个 pair ,以 std::map<int, int>为例,其返回值是一个 std::pair<std::map<int, int>::iterator, bool >,如果数据插入成功( key 不存在)则返回的迭代器 second 为 true 且 first 返回插入元素的迭代器,如果数据插入失败( key 存在)则返回的迭代器 second 为 false 。

如果 key 不存在就创建这个 KV 实例,否则就更新 value 。

我只知道两种方法:

一、利用下标法:

m1[str] = val

先查找有没有str这个元素,如有,不作任何 *** 作,没有的话,添加str并给str关联的对象赋值也可以只写m1[str]

二、利用函数

m1.insert(e),e为pair型,即,val_type,如果,e.fitst不在map中,刚添加e

m1.insert(beg, end) beg, end, 为元素迭代器,必须是val_tyle型

m1.insert(iter, e) 如果e.first不在m中,创建新元素,并以iter为起点找新元素的位置.

楼上的比我快一步,不好意思!


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11276915.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-14
下一篇2023-05-14

发表评论

登录后才能评论

评论列表(0条)

    保存