gpt4 book ai didi

c++ - 将 qsort 与比较器功能一起使用

转载 作者:行者123 更新时间:2023-11-27 23:28:18 25 4
gpt4 key购买 nike

我知道 c 库中的 qsort 并且我已经用字符和整数实现了它(从 const void * 形式转换为相关形式)但是现在我正在实现代码,它在给定的句子中给出最长的重复这里是简单的比较函数

int pstrcmp(char **p,char **q){
return strcmp(*p,*q);

}

我想像这样在 qsort 中使用它

qsort(a,n,sizeof(char *),pstrcmp);(a is array of strings)

当我直接写的时候,它写的是不兼容的,然后就显示错误,请帮我改正

错误是这个

2 IntelliSense: argument of type "int (*)(char **p, char **q)" is incompatible with parameter of type "int (__cdecl *)(const void *, const void *)" c:\users\datuashvili\documents\visual studio 2010\projects\duplicate_strings\duplicate_strings\duplicates_strings.cpp 32 27 duplicate_strings

最佳答案

您需要为您的比较器函数提供正确的函数签名,然后在内部进行转换,例如

int pstrcmp(const void * p, const void * q)
{
const char **ps = (const char **)p;
const char **qs = (const char **)q;

return strcmp(*ps, *qs);
}

关于c++ - 将 qsort 与比较器功能一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7687059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com