cstdlib에서 qsort를 실행하려고합니다. 함수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();
}
있습니다 나는 그렇게 당신의 compare
기능은 실제로 Animal
에 대한 포인터에 대한 포인터를 취
Animal<-Bear
Bear<-brown_bear
brown_bear<-white_bear
Bear<-panda_bear
Animal<-snail
"qstore를 cstdlib에서 실행하려고합니다."- 왜? 당신은'std :: sort'를 알고 있습니까? –
@KonradRudolph 선생님이 그렇게 말씀 하시므로 qsort를 사용해야합니다. 그는 나를 std :: sort를 사용하도록 명시 적으로 금지합니다. – Slazer
멋진 선생님. (글쎄, 공평하게 말하자면, 이것을 가르치는 데 약간의 의미가있을 수 있지만, 음 .......) –