Всякий раз, когда я сравниваю строку в qsort, порядок совершенно неправильный. Например, вход
45 4 9 22 2
но мой вывод
22 45 4 9 2
вот моя функция сравнения
int cmpString(const void *a, const void *b) {
const Node *a1 = *(const Node **)a;
const Node *b1 = *(const Node **)b;
return a1->s.c_str() - b1->s.c_str();
}
и не говорите мне использовать sort(), я не могу выполнить это задание
qsort
для массиваstd::string
, то ваш код не работает, независимо от того, приняли ли вы данные ответы. - person PaulMcKenzie   schedule 07.02.2019Node
— нетривиальный тип, тоqsort
использовать нельзя, независимо от ограничений, наложенных на вас учителем. Никакая программа на C++ не должна использоватьqsort
, если только нет чего-то лучшего в использованииqsort
(с оговоркой, что это работает только для нетривиальных типов). - person PaulMcKenzie   schedule 07.02.2019