【发布时间】:2017-10-26 17:52:39
【问题描述】:
我一直试图编译这段代码,但它似乎不希望分区函数工作。显然这与数组有关,但我无法弄清楚它是什么。
编辑:我使用的是 std::partition,而不是原始分区函数。
#include <ctime>
#include <string>
#include <algorithm>
#include <array>
#include <iostream>
using namespace std;
const int MAX_SIZE = 10000;
const int MIN_SIZE = 10;
这是快速排序:
//quick sort
void quickSort(int arr[], int first, int last, int size)
{
if(last - first + 1< MIN_SIZE)
{
insertionSort(arr,size);
}
else
{
int pivotIndex = partition(arr, first, last);
quickSort(arr, first, pivotIndex-1,size);
quickSort(arr, pivotIndex+1,last,size);
}
}
这是错误:
error: no matching function for call to 'partition(int*&, int&, int&)'
感谢任何可以解决此问题的人。除分区功能外的所有功能似乎都可以正常工作。
【问题讨论】:
-
编译器错误与数组无关。这与
partition函数本身有关。它甚至没有被调用,只是编译器无法理解你试图调用的函数。
标签: c++ arrays sorting quicksort partition