我想使用快速排序對特定成員的結構數組進行排序。 這裏是我的結構:如何遞歸調用具有結構數組作爲參數的函數
struct points
{
int x,y,apart;
};
和快速排序功能:
void quicksort(points* a,int points::*member,int left, int right)
{
int i=left, j=right, pivot=a[(i+j)/2].*member;
while(i<j)
{
while(a[i].*member<pivot)
i++;
while(a[j].*member>pivot)
j--;
if(i<=j)
{
points tmp=a[i];
a[i]=a[j];
a[j]=tmp;
i++;j--;
}
}
if(left<j)
quicksort(a,&points::*member,left,j);
if(i<right)
quicksort(a,&points::*member,i,right);
}
,問題是在這兩行代碼:
if(left<j)
quicksort(a,&points::*member,left,j);
if(i<right)
quicksort(a,&points::*member,i,right);
它給的我的錯誤:預期'*'標記之前的非限定標識|
我不知道我什麼時候遞歸調用它如何指定我想要排序的成員... 如果它有任何意義,請幫助我。 感謝
哈哈,謝謝,那工作) –