c++

c++ qsort如何处理浮点数排序

小樊
81
2024-11-25 06:28:32
栏目: 编程语言

在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函数对浮点数数组进行排序,并将自定义比较函数作为参数传递。最后,我们输出排序后的结果。

0
看了该问题的人还看了