gpt4 book ai didi

c++ - 使用 cstdlib 中的 qsort

转载 作者:太空宇宙 更新时间:2023-11-03 10:30:28 27 4
gpt4 key购买 nike

我正在尝试从 cstdlib 运行 qsort。功能

qsort( m_all_animals , numberOfAnimals() , sizeof(Animal*) , compare);

执行成功但没有对 m_all_animals 进行排序。实际上,它对数组没有任何作用。底层数据结构在这里

Animal** m_all_animals;

//the number of elements, I tested it and it works
int numberOfAnimals(){
int result=0;
for (int i=0;i<m_size*2;++i){
if (m_all_animals[i]==NULL)
break;
++result;
}
return result;
}

int compare (const void* p1, const void* p2){
return ((Animal*) p1)->get_size()-((Animal*) p2)->get_size();
}

如果有帮助,我有以下继承层次结构

Animal<-Bear
Bear<-brown_bear
brown_bear<-white_bear
Bear<-panda_bear
Animal<-snail

最佳答案

不要在 C++ 中使用 qsort()!它很慢,不是类型安全的,并且在非 POD 类型上使用时会造成严重破坏。请改用 std::sort()

关于c++ - 使用 cstdlib 中的 qsort,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18044091/

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