0

我正在尝试在 C++ 中进行并行 qsort 。我有一个排序好的数字数组,我想要一个并行的二维字符数组随着它的数字上下移动。这就是我到目前为止所拥有的。

    int compare (const void * a, const void * b)
    {
        //this is for qsort
        return ( *(int*)b - *(int*)a );
    }

    void sort_scores(char** myArray, int *votes)
    {
        qsort ((myArray, votes ), 5, sizeof(int), compare);
    }

我对数字进行了排序,但没有一次移动一个角色,我似乎无法让它发挥作用。任何帮助深表感谢。

4

1 回答 1

0

您可以创建一个指向投票的指针数组(即指向数组每个元素的指针votes数组),然后对这些指针进行排序,而不是对投票本身进行排序。(请记住相应地更新比较函数!它现在将接收您必须转换为的参数int **)。对新数组进行排序后,只需遍历它,并使用指针差异来获取原始数组中元素的索引。

于 2013-02-10T11:07:36.553 回答