这只是我代码的一部分,用于快速排序。 它不断返回错误:"没有匹配函数来调用swap"
为什么以及如何解决?
using namespace std;
void print_array(int array[], int low, int hi)
{
cout<< "quick sort partition steps: ";
for (int j=low; j<=hi;j++)
cout <<" "<< array[j];
cout << endl;
}
//end of print_array
int partition (int arr[], int low, int hi)
{
int pivot = arr[hi];
int i = low;
for (int j = low; j<hi; j++)
{
if (arr[j] <= pivot)
{
swap(arr, i, j);
i++;
}
}
print_array(arr, low, hi);
swap(arr, i, hi);
return i;
}
答案 0 :(得分:0)
如果您要使用std::swap
,请尝试以下操作:
swap(arr[i], arr[j]);
代替swap(arr, i, j);
swap(arr[i], arr[hi]);
代替swap(arr, i, hi);