![std::map的insert和下标[] *** 作区别,第1张 std::map的insert和下标[] *** 作区别,第1张](/aiimages/std%3A%3Amap%E7%9A%84insert%E5%92%8C%E4%B8%8B%E6%A0%87%5B%5D%E6%93%8D%E4%BD%9C%E5%8C%BA%E5%88%AB.png)
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为起点找新元素的位置.
楼上的比我快一步,不好意思!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)