C++ swap(int*,int*)在使用和不使用“swap”时显示不同的行为&&引用;操作人员
我在选择排序程序中使用以下代码来交换值。当我传递像交换(a[min],a[j])这样的参数时,它交换值,但不增加交换变量。 但是当我传递像swap(&a[min],&a[j])这样的参数时,它交换值并增加“swaps”变量。我不知道引擎盖下发生了什么。C++ swap(int*,int*)在使用和不使用“swap”时显示不同的行为&&引用;操作人员,c++,pointers,C++,Pointers,我在选择排序程序中使用以下代码来交换值。当我传递像交换(a[min],a[j])这样的参数时,它交换值,但不增加交换变量。 但是当我传递像swap(&a[min],&a[j])这样的参数时,它交换值并增加“swaps”变量。我不知道引擎盖下发生了什么。 我正在使用minGW编译器 void swap(int *x,int *y) { swaps++; int temp; temp=*x; *x=*y; *y=temp; } 当您使用swap(a[min],a[j])时,您很可能正在调用std
我正在使用minGW编译器
void swap(int *x,int *y)
{
swaps++;
int temp;
temp=*x;
*x=*y;
*y=temp;
}
当您使用swap(a[min],a[j])
时,您很可能正在调用std::swap
。另一个避免的理由
using namespace std;
您有一个
使用名称空间std代码>,是吗?是的,实际上我不知道名称空间有自己的交换。谢谢,现在我知道了,谢谢。