假设我有一组数据点,表示为双精度数组的数组,所以
double **data;
Run Code Online (Sandbox Code Playgroud)
现在,如果我想通过每个数据点中的某个字段对数据进行排序,比如说第二个字段,我会编写一个比较器来做类似的事情:
int compare_data_second_field(void *a, void *b) {
double da = ((double *) a)[1];
double db = ((double *) b)[1];
if (da < db) return -1;
else if (da > db) return 1;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
然后用qsort它们按第二个字段对它们进行排序.
我的问题是,如果我事先不知道哪个字段要排序,我该如何概括呢?就像我可能要由1排序ST有时候场和5 个有时领域,等等.我也想它是线程安全的,所以我不希望使用全局变量来跟踪排序哪个字段由因为这些中的多个可能会同时发生.
在C++中,我只使用自定义排序类,并在类中有一个实例变量来跟踪要排序的字段.我不知道如何在C中做这样的事情.
通常我使用类似的东西:
srand(time(0));
Run Code Online (Sandbox Code Playgroud)
获得随每个程序调用而变化的伪随机性.但是,我现在处于一种情况,我有一批程序将同时启动,因为time每秒只更改一次,大部分时间我的所有程序都以相同的种子开始.
当我想要一堆程序一次启动并且所有程序都获得不同的种子时,什么是更好的策略来播种我的RNG?
对于图像中的每一行,我想找到该行中的第一个黑色(或第一个非白色)像素.例如,对于这样的图像:

我希望输出如下:
0
1
0
Run Code Online (Sandbox Code Playgroud)
或者接近我可以解析的东西.我认为可能有一种方法可以用subimage-search做到这一点,但我不太清楚如何做.有什么指针吗?