函数(vector<;int>;v)和函数(vector<;int>;v)之间有什么区别? 在C++中使用向量进行插入排序时,发现当我使用时,它没有执行函数: void ins_sort(vector<int> v){ //function body } void-ins\u排序(向量v){ //功能体 }

函数(vector<;int>;v)和函数(vector<;int>;v)之间有什么区别? 在C++中使用向量进行插入排序时,发现当我使用时,它没有执行函数: void ins_sort(vector<int> v){ //function body } void-ins\u排序(向量v){ //功能体 },c++,function,vector,C++,Function,Vector,然而,当我做了以下工作时,它起了作用: void ins_sort(vector<int>& v){ //function body } void-ins\u排序(向量&v){ //功能体 } 有人能解释一下原因吗?通过&可以通过引用传递参数。也就是说,您可以在函数体中修改它们,并且在调用函数后仍然可以看到它们被修改 如果没有&,则是按值传递参数。也就是说,将复制向量,并且在函数内部使用向量的副本。函数结束后,您将再次使用原始向量。使用&可以通过引用传递参数。也就

然而,当我做了以下工作时,它起了作用:

void ins_sort(vector<int>& v){
    //function body
}
void-ins\u排序(向量&v){
//功能体
}

有人能解释一下原因吗?

通过
&
可以通过引用传递参数。也就是说,您可以在函数体中修改它们,并且在调用函数后仍然可以看到它们被修改


如果没有
&
,则是按值传递参数。也就是说,将复制向量,并且在函数内部使用向量的副本。函数结束后,您将再次使用原始向量。

使用
&
可以通过引用传递参数。也就是说,您可以在函数体中修改它们,并且在调用函数后仍然可以看到它们被修改


如果没有
&
,则是按值传递参数。也就是说,将复制向量,并且在函数内部使用向量的副本。函数结束后,您将再次使用原始向量。

使用
&
可以通过引用传递参数。也就是说,您可以在函数体中修改它们,并且在调用函数后仍然可以看到它们被修改


如果没有
&
,则是按值传递参数。也就是说,将复制向量,并且在函数内部使用向量的副本。函数结束后,您将再次使用原始向量。

使用
&
可以通过引用传递参数。也就是说,您可以在函数体中修改它们,并且在调用函数后仍然可以看到它们被修改


如果没有
&
,则是按值传递参数。也就是说,将复制向量,并且在函数内部使用向量的副本。函数结束后,您将再次使用原始向量。

基本上通过引用传递(
&
)传递相同的
向量
,而通过值传递(no-
&
)传递向量的副本。如果
向量
包含大量项,则两者之间存在显著的性能差异。此外,如果点正在进行插入排序,您可能希望对相同的向量进行排序,而不是对副本进行排序(除非您计划返回副本,这将导致另一次性能损失)。

基本上通过引用传递(
&
)通过值传递相同的
向量(无-
&
)传递向量的副本。如果
向量
包含大量项,则两者之间存在显著的性能差异。此外,如果点正在进行插入排序,您可能希望对相同的向量进行排序,而不是对副本进行排序(除非您计划返回副本,这将导致另一次性能损失)。

基本上通过引用传递(
&
)通过值传递相同的
向量(无-
&
)传递向量的副本。如果
向量
包含大量项,则两者之间存在显著的性能差异。此外,如果点正在进行插入排序,您可能希望对相同的向量进行排序,而不是对副本进行排序(除非您计划返回副本,这将导致另一次性能损失)。

基本上通过引用传递(
&
)通过值传递相同的
向量(无-
&
)传递向量的副本。如果
向量
包含大量项,则两者之间存在显著的性能差异。此外,如果该点正在执行插入排序,则您可能希望对同一向量进行排序,而不是对副本进行排序(除非您计划返回副本,这将导致另一次性能损失)。

传递值vs传递引用使用向量&,您传递的是原始引用本身。而对于vector,您只是创建了一个副本(通过值传递)通过值与通过引用通过vector&,您传递的是原始引用本身。而对于vector,您只是创建了一个副本(通过值传递)通过值与通过引用通过vector&,您传递的是原始引用本身。而对于vector,您只是创建了一个副本(通过值传递)通过值与通过引用通过vector&,您传递的是原始引用本身。而对于vector,你只需要创建一个副本(传递值)True,我会编辑它。True,我会编辑它。True,我会编辑它。True,我会编辑它。True,我会编辑它。