She*_*ryl 1 c++ iterator reference function c++11
unordered_map<int, string>::iterator findElement(unordered_map<int, string> &intString, int index){
return intString.find(index);
}
Run Code Online (Sandbox Code Playgroud)
如果我&之前没有添加intString,代码将崩溃.
的&在用于功能参数的类型intString意味着函数得到的,而不是它的副本到传递的参数的引用.
因此,返回的迭代器.find()和它依次返回的迭代器将指向传递的参数,而不是指向某处不再存在的副本的悬空迭代器.
访问被破坏的对象,特别是如果内存被重新使用,可能会产生各种令人惊讶的结果,这就是它被称为未定义行为(UB)的原因.
| 归档时间: |
|
| 查看次数: |
68 次 |
| 最近记录: |