温馨提示×

c++ qsort如何处理指针排序

c++
小樊
83
2024-11-25 06:14:33
栏目: 编程语言

在C++中,qsort函数用于对数组进行排序

假设你有一个指针数组,其中每个指针指向一个整数。你需要根据这些整数对指针数组进行排序。以下是一个示例:

#include <iostream>
#include <cstdlib>

// 比较函数,用于比较两个整数
int compare(const void *a, const void *b) {
    int int_a = *(int *)a;
    int int_b = *(int *)b;
    return (int_a - int_b);
}

int main() {
    // 创建一个指针数组
    int *ptr_array[] = {new int(5), new int(1), new int(9), new int(3)};

    // 获取指针数组的大小
    int size = sizeof(ptr_array) / sizeof(ptr_array[0]);

    // 使用qsort对指针数组进行排序
    qsort(ptr_array, size, sizeof(int *), compare);

    // 输出排序后的指针数组
    for (int i = 0; i < size; ++i) {
        std::cout << "Value: " << *(ptr_array[i]) << std::endl;
        delete ptr_array[i]; // 释放内存
    }

    return 0;
}

在这个示例中,我们首先定义了一个比较函数compare,它接受两个const void *类型的参数。然后,我们使用qsort函数对指针数组进行排序,传入指针数组的大小、每个元素的大小(使用sizeof操作符)以及比较函数。最后,我们遍历并输出排序后的指针数组,并释放分配的内存。

0