Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Net_Wanderer
235 / 208 / 29
Регистрация: 08.06.2011
Сообщений: 467
#1

qsort - C++

27.06.2011, 22:49. Просмотров 1111. Ответов 7
Метки нет (Все метки)


http://www.cyberforum.ru/cpp-beginners/thread793956.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.06.2011, 22:49
Я подобрал для вас темы с готовыми решениями и ответами на вопрос qsort (C++):

qsort
Ребят,расскажи подробно и простенько про qsort;Видел тему,но ничего не понял.Я...

qsort
читал, что с помощю QSORT можно упорядочить масив, но не пишет как. помогите!!

qsort C++
Помогите, плиз,разобраться с этой функцией, я прогу написала, но мало чего...

сортировка qsort
Есть динамический массив, содержащий строки в строках слова, формат такой аа...

Функция Qsort
Прошу ознакомить меня с функцией Qsort. Если можно, то не мудрено и на...

7
Jupiter
Каратель
Эксперт С++
6568 / 3989 / 400
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
27.06.2011, 22:53 #2
а если так?
C++
1
2
3
4
int compare(const void *s1, const void *s2)
{
        return strcmp((char *)s1, (char *)s2);
}
0
Net_Wanderer
235 / 208 / 29
Регистрация: 08.06.2011
Сообщений: 467
27.06.2011, 22:58  [ТС] #3
Цитата Сообщение от Maxwe11 Посмотреть сообщение
а если так?
C++
1
2
3
4
int compare(const void *s1, const void *s2)
{
        return strcmp((char *)s1, (char *)s2);
}
Получается все наоборот, студия последовательность переставляет в обратном порядке, а g++ не изменяет. Но сортировка так и не работает.
0
grizlik78
Эксперт С++
1982 / 1475 / 191
Регистрация: 29.05.2011
Сообщений: 3,048
27.06.2011, 22:58 #4
Правильный вид этой функции для qsort такой:
C
1
2
3
4
int compare(const void *s1, const void *s2)
{
        return strcmp(*(char * const *)s1, *(char * const *)s2);
}
указатели передаются по указателю, так что надо разыменовывать. Ну и возвращать результат самой strcmp
1
Net_Wanderer
235 / 208 / 29
Регистрация: 08.06.2011
Сообщений: 467
27.06.2011, 23:03  [ТС] #5
Цитата Сообщение от grizlik78 Посмотреть сообщение
Правильный вид этой функции для qsort такой:
C
1
2
3
4
int compare(const void *s1, const void *s2)
{
        return strcmp(*(char * const *)s1, *(char * const *)s2);
}
указатели передаются по указателю, так что надо разыменовывать. Ну и возвращать результат самой strcmp
Работает
s1 и s2 приводятся к типу "указатель на константный указатель на char" а потом разыменовыаются и мы получаем "константный указатель на char" то есть строку, так?
0
grizlik78
Эксперт С++
1982 / 1475 / 191
Регистрация: 29.05.2011
Сообщений: 3,048
27.06.2011, 23:06 #6
Ну, qsort должна уметь работать с любыми данными, поэтому они передаются через указатели на void. Но поскольку там реально указатели на char*, то сначала преобразовываем к char**, а потом разыменовываем.
0
Net_Wanderer
235 / 208 / 29
Регистрация: 08.06.2011
Сообщений: 467
27.06.2011, 23:19  [ТС] #7
Тогда можно сделать так:
C
1
2
3
4
int compare(const void *s1, const void *s2)
{
        return strcmp(*(const char * const *)s1, *(const char * const *)s2);
}
Ведь это функция сравнения, и она не должена изменять свои параметры.
0
grizlik78
Эксперт С++
1982 / 1475 / 191
Регистрация: 29.05.2011
Сообщений: 3,048
27.06.2011, 23:21 #8
Да, можно. Но я не стал менять форму, которая приведена у меня в мане
0
27.06.2011, 23:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.06.2011, 23:21
Привет! Вот еще темы с решениями:

Vector and qsort
Здравствуйте, есть код: #include "iostream" #include "vector" using...

не работает qsort
#include <iostream> #include <math.h> #include <iomanip> #include...

qsort vs sort
Собственно вопрос что лутше, в каких ситуациях, и почему , спасибо

Реализация qsort c++
Всем доброго времени суток, уже несколько дней бьюсь над проблемой. Не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru