注册 登录
编程论坛 C++教室

请教一个map[]取值的问题,map[]取值会影响map自身的数据吗?

w906414 发布于 2017-11-27 11:13, 1739 次点击
代码类似于这样,起始map中无pair对应元素
pair = std::makepair(a,b);
if(map.find(pair) != map.end())
{
    printf("step0: %u",map[pair]);
}

printf("step1: %u",map[pair]);

if(map.find(pair) != map.end())
{
    printf("step2: %u",map[pair]);
}
期望打印结果: step1:...
实际打印结果: step1:....
               step2:....
非常费解,用map[pair]进行取值,会把pair加入到map中吗?


[此贴子已经被作者于2017-11-27 11:15编辑过]

2 回复
#2
rjsp2017-11-27 11:56
会,map[pair] 若有,则返回对应的引用;若无,则先添加再返回对应的引用
#3
w9064142017-11-28 09:25
回复 2楼 rjsp
谢谢你,确实是这样,差点踩到坑
1