-1
그래서 프로젝트의 인덱서를 만들려고하고 char **를 사용하여 파일의 단어를 저장해야합니다. 배열 안에있는 단어를 정렬하려고합니다. 지금까지 시도한 것들을 요약 해 보면 다음과 같습니다.char **
void Word::arrangeWords(char **&words)
{
char **temp=new char*[getSize()];
temp[getSize()-1]=words[getSize()-1];
for (int i=getSize()-1;i>0;i--)
{
comp=strcmp(temp[i], temp[i-1]);
if (comp<0)
{
temp[i]=words[i-1];
temp[i-1]=words[i];
}
else
{
temp[i]=words[i];
}
}
delete [] words;
words=temp;
}
이것은 결국 작동하지 않으며 그 이유는 알 수 있습니다. 쉽게 쉽게 정렬 할 수 있습니까? (그들 모두를 저장하고 std::vector
) std::string
를 사용하지만 그냥 작동 모든 것을 만드는
#include <cstring>
#include <algorithm>
void sortcstrings(const char** arr, size_t n) {
std::sort(arr, arr+n, [](const char* a, const char* b){
return std::strcmp(a, b)<0;});
}
, 훨씬 적은 오류가 발생하기 쉬운 : 사전
그냥'qsort'를 사용하거나 C++'std :: sort'를 사용하십시오. – Deduplicator
'std :: vector & words'를 사용하여'std :: sort (words.begin(), words.end());'를 사용하면 훨씬 간단하게 생활 할 수 있습니다. –