Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么我要添加'&';在参数之前,该参数是无序的_映射? unordered_-map::迭代器findElement(unordered_-map&intString,int-index){ 返回intString.find(索引); }_C++_Function_C++11_Reference_Iterator - Fatal编程技术网

C++ 为什么我要添加'&';在参数之前,该参数是无序的_映射? unordered_-map::迭代器findElement(unordered_-map&intString,int-index){ 返回intString.find(索引); }

C++ 为什么我要添加'&';在参数之前,该参数是无序的_映射? unordered_-map::迭代器findElement(unordered_-map&intString,int-index){ 返回intString.find(索引); },c++,function,c++11,reference,iterator,C++,Function,C++11,Reference,Iterator,如果我不在intString之前添加&,代码将崩溃。函数参数intString的类型中的&表示函数获取对传递参数的引用,而不是它的副本 因此,从.find()返回并依次返回的迭代器将指向传递的参数,而不是指向不再存在的副本的悬空迭代器 访问被破坏的对象,特别是如果内存被重新使用,可能会产生各种令人惊讶的结果,这就是为什么它被称为未定义行为(Undefined Behavior,UB)。你知道&的意思吗?获取地址?&在不同的上下文中有两种不同的含义int*p=&i正在获取i的地址int&n=i是一

如果我不在
intString
之前添加
&
,代码将崩溃。

函数参数
intString
的类型中的
&
表示函数获取对传递参数的引用,而不是它的副本

因此,从
.find()
返回并依次返回的迭代器将指向传递的参数,而不是指向不再存在的副本的悬空迭代器


访问被破坏的对象,特别是如果内存被重新使用,可能会产生各种令人惊讶的结果,这就是为什么它被称为未定义行为(Undefined Behavior,UB)。

你知道
&
的意思吗?获取地址?
&
在不同的上下文中有两种不同的含义
int*p=&i
正在获取
i
的地址
int&n=i
是一个参考。来,你在做latterI,明白了!谢谢
unordered_map<int, string>::iterator findElement(unordered_map<int, string> &intString, int index){
    return intString.find(index);
}