这是我的代码:
map <pair<int,int> ,string> m;
m.insert(make_pair(1,2),"imtiaz");//making key value pair
m.insert(make_pair(8,3),"moin");
m.insert(make_pair(1,2),"izm");
cout<<m[make_pari(1,2)]<<endl; //print value for key 1,2
output:
imtiaz
[我们知道如果我们在地图中为现有键插入一个值,它将更新该值。对于相同的键(1,2),我插入了两个值“ imtiaz”和“ izm”。因此,最新值“ izm”应该在这里打印。这是怎么了?
insert
的预期行为是不覆盖映射中的现有条目。insert_or_assign
不会修改地图中已经存在的元素。而是插入新元素。返回类型允许检查插入是否成功(即,尚无具有相同键的元素)。operator[]
的签名(您使用的签名)是这样的: