在Vala中排序默认数组的简单方法

时间:2019-02-11 19:00:06

标签: sorting vala

我这样尝试过,但是没有用。而且我认为对数组进行排序的方法太复杂了。我需要类似C#的System.Array.Sort()

int[] data = { 3, 9, 2, 7, 5 };
var arr = new Array<int> ();
arr.append_vals (data,data.length);

arr.sort((a, b) => {
    return (int) (a > b) - (int) (a < b);
});

for (int i=0;i<arr.length;i++) {
    print(@"$(arr.index(i))\t");
}

还尝试过,该数组仍未排序。

using Posix;
int cmpfunc(ref int a, ref int b) {
    return (int) (a > b) - (int) (a < b);
}
void main() {
    int[] data = { 3, 9, 2, 7, 5 };

    Posix.qsort (data, data.length, sizeof(string), (Posix.compar_fn_t) cmpfunc);
    foreach (int st in data) {
        print(@"$st\t");
    }

}

1 个答案:

答案 0 :(得分:2)

Posix.qsort函数需要知道数组sizeof(int)中每个元素的大小,但是您要给它指定其他类型sizeof(string)的大小。