在 Vala 中对默认数组进行排序的简单方法
Easy way to sort default array in 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");
}
}
Posix.qsort
函数需要知道数组中每个元素的大小,sizeof(int)
,但是你给它的是不同类型的大小,sizeof(string)
。
我这样试过,不行。而且我认为对数组进行排序的方法太复杂了。我需要像 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");
}
}
Posix.qsort
函数需要知道数组中每个元素的大小,sizeof(int)
,但是你给它的是不同类型的大小,sizeof(string)
。