错误:没有用于调用swap的匹配函数

时间:2015-09-28 02:15:16

标签: c++

这只是我代码的一部分,用于快速排序。 它不断返回错误:"没有匹配函数来调用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;
}

1 个答案:

答案 0 :(得分:0)

如果您要使用std::swap,请尝试以下操作:

  • swap(arr[i], arr[j]);代替swap(arr, i, j);
  • swap(arr[i], arr[hi]);代替swap(arr, i, hi);