在C++中,qsort
函数用于对数组进行排序
#include <iostream>
#include <cstdlib>
#include <vector>
// 自定义比较函数,用于比较两个浮点数
int compare_float(const void *a, const void *b) {
float fa = *(const float *)a;
float fb = *(const float *)b;
if (fa < fb) {
return -1;
} else if (fa > fb) {
return 1;
} else {
return 0;
}
}
int main() {
std::vector<float> vec = {3.2, 1.5, 4.8, 2.9, 0.1};
// 使用qsort对浮点数数组进行排序
qsort(vec.data(), vec.size(), sizeof(float), compare_float);
// 输出排序后的结果
for (float f : vec) {
std::cout<< f << " ";
}
return 0;
}
在这个示例中,我们首先定义了一个自定义的比较函数compare_float
,它接受两个void
指针作为参数。然后,我们将这两个指针转换为float
指针,以便我们可以比较它们所指向的浮点数。接下来,我们使用qsort
函数对浮点数数组进行排序,并将自定义比较函数作为参数传递。最后,我们输出排序后的结果。