unordered_map<int, string>::iterator findElement(unordered_map<int, string> &intString, int index){
return intString.find(index);
}
如果我没有在
&
之前添加intString
,则代码将崩溃。 最佳答案
函数参数&
的类型中的intString
表示该函数获取对传递的参数的引用,而不是其副本。
因此,从.find()
返回并依次返回的迭代器将指向传递的参数,而不是悬空的迭代器指向不再存在的副本中的某个地方。
访问损坏的对象(尤其是在重新使用内存的情况下)可能会产生各种令人惊讶的结果,这就是为什么将其称为未定义行为(UB)的原因。