Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

qsort

1.8K
27 сентября 2006 года
pod
144 / / 05.04.2006
пишу:
Цитата:

# include <iostream>
using namespace std;

int sf(const void *a,const void *b);

int main()
{
int n,k,d=0;
int db[100000];
//int tempdb[100000];
int commands[100];

cin>>n;
for (int i=0; i<n; i++)
cin>>db;

qsort((void *)db,n,sizeof(db[0]),sf);

for(int i=0; i<n; i++)
cout<<db;


return 0;
}

int sf(const void *a,const void *b)
{
if ((int)a>(int)b)
return 1;
if ((int)a<(int)b)
return -1;
else
return 0;
}



и не сортирует
что неверно?

5.4K
27 сентября 2006 года
Svyatozar
221 / / 11.09.2006
а нафига сравнивать числовые значения физических адресов элементов массива??

if ((int)a>(int)b)

сравнивай значения по этим адресам:

 
Код:
int sf(const void *a,const void *b)
{
if (*(int *)a>*(int *)b)
return 1;
if (*(int *)a<*(int *)b)
return -1;
else
return 0;
}
1.8K
28 сентября 2006 года
pod
144 / / 05.04.2006
спосибо за помощ всё получилось но если можно ещё вопросик:
я не совсем понял принцип работы qsort.
в int sf(const void *a,const void *b). что значит void *a?
5.4K
28 сентября 2006 года
Svyatozar
221 / / 11.09.2006
[QUOTE=pod]спосибо за помощ всё получилось но если можно ещё вопросик:
я не совсем понял принцип работы qsort.
в int sf(const void *a,const void *b). что значит void *a?[/QUOTE]
указатель на переменную типа void, то есть указатель на переменную любого типа. Функция может сравнивать хоть бананы с апельсинами, например int и float, или int и вообще строку char* в которой текстом записано число, просто надо самому функцию сравнения прописать зная за ранее что будет сравниваться.
380
28 сентября 2006 года
Arestov
285 / / 20.09.2000
[QUOTE=pod]спосибо за помощ всё получилось но если можно ещё вопросик:
я не совсем понял принцип работы qsort.
в int sf(const void *a,const void *b). что значит void *a?[/QUOTE]
цитата:
...I found out an interesting fact. Most people who think that they know C really do not understand memory or pointers. They just don't get it. It's amazing that these people are working as programmers, but they are!

подпишусь под каждым словом

P.S. цитата отсюда: http://www.joelonsoftware.com/articles/fog0000000073.html
309
28 сентября 2006 года
el scorpio
1.1K / / 19.09.2006
Цитата:

int sf(const void *a,const void *b)
{
if (*(int *)a>*(int *)b)
return 1;
if (*(int *)a<*(int *)b)
return -1;
else
return 0;
}



Одной строкой

 
Код:
inline int sf (int a, int b)
{return (a>b) ? 1 : (a<b) ? -1 : 0;}

И вообще, передавать значение базового типа через указатель неопределённого типа - моветон.

[QUOTE=Arestov]...I found out an interesting fact. Most people who think that they know C really do not understand memory or pointers. They just don't get it. It's amazing that these people are working as programmers, but they are![/QUOTE]
Ya, ya - fershtein :)
398
28 сентября 2006 года
Alexandoros
630 / / 21.10.2005
[QUOTE=el scorpio]Одной строкой
 
Код:
inline int sf (int a, int b)
{return (a>b) ? 1 : (a<b) ? -1 : 0;}

[/QUOTE]

rtfm msdn
 
Код:
void qsort(
   void *base,
   size_t num,
   size_t width,
   int (__cdecl *compare )(const void *, const void *)
);


Цитата:

Ya, ya - fershtein :)


Ага, я так и понял :D

1.8K
28 сентября 2006 года
pod
144 / / 05.04.2006
[QUOTE=Arestov]цитата:
...I found out an interesting fact. Most people who think that they know C really do not understand memory or pointers. They just don't get it. It's amazing that these people are working as programmers, but they are!

подпишусь под каждым словом

P.S. цитата отсюда: http://www.joelonsoftware.com/articles/fog0000000073.html[/QUOTE]
я не говорил что я профи я ученик. а по моему если чтото не понятно не грех задавать вопрос, все мы когдата начинали
284
29 сентября 2006 года
michael_is_98
587 / / 25.02.2005
[QUOTE=pod]я не говорил что я профи я ученик. а по моему если чтото не понятно не грех задавать вопрос, все мы когдата начинали[/QUOTE]
Раз уж используется <iostream>, можно было бы и sort из <algorithm> использовать.
1.8K
29 сентября 2006 года
pod
144 / / 05.04.2006
я просто не очень знаком с <algorithm> могу ли я где небуть найти описание этой библиотеки со всеми своими функциями, (или эсли можно всех возможних библиотек).
5.4K
29 сентября 2006 года
Svyatozar
221 / / 11.09.2006
[QUOTE=pod]я просто не очень знаком с <algorithm> могу ли я где небуть найти описание этой библиотеки со всеми своими функциями, (или эсли можно всех возможних библиотек).[/QUOTE]

<algorithm> не библиотека, это алиас для включения определенных файлов заголовков для соответствующей части STL:
http://www.sgi.com/tech/stl/table_of_contents.html
398
30 сентября 2006 года
Alexandoros
630 / / 21.10.2005
Вся инфа по программированию под виндовс

http://msdn.microsoft.com/library/default.asp
(смотреть в ИЕ)
1.8K
06 октября 2006 года
pod
144 / / 05.04.2006
дааааа
блогодорю за сссылочки
284
09 октября 2006 года
michael_is_98
587 / / 25.02.2005
http://www.sgi.com/tech/stl/table_of_contents.html
это стандарт или просто документация от разработчика
5.4K
09 октября 2006 года
Svyatozar
221 / / 11.09.2006
[QUOTE=michael_is_98]http://www.sgi.com/tech/stl/table_of_contents.html
это стандарт или просто документация от разработчика[/QUOTE]
А фиг его знает. Я не особый поклонник STL...

Посмотри еще Boost - они постоянно что-то там стандартизируют.
3
09 октября 2006 года
Green
4.8K / / 20.01.2000
[QUOTE=michael_is_98]http://www.sgi.com/tech/stl/table_of_contents.html
это стандарт или просто документация от разработчика[/QUOTE]
Нет, это не стандарт.
Вот стандарт С++ 2003 года:
http://anatolix.naumen.ru/files/books/CPPStandard2003.zip
284
12 октября 2006 года
michael_is_98
587 / / 25.02.2005
Тогда что же это за описание? Документация - упрощенное описание стандарта для разработчиков?
3
12 октября 2006 года
Green
4.8K / / 20.01.2000
Цитата:
This site documents all of the components (classes, functions, and concepts) in the SGI Standard Template Library.


Т.е. это описание конкретной (от SGI) реализации STL.

284
13 октября 2006 года
michael_is_98
587 / / 25.02.2005
Спасибо!
Наверное и у STLPort'а есть что-то подобное
63
05 ноября 2006 года
Zorkus
2.6K / / 04.11.2006
По самым основам STL можно почитать Г.Шилдт, С++ базовый курс, издание 3. Там он не разбирает глубоко филлософию STL, зато быстро практ. знания дает, а потом - Н. Джосъютис "С++ Стандартная библиотека для профессионалов".
284
06 ноября 2006 года
michael_is_98
587 / / 25.02.2005
Что-нибудь из этих книг в электр.виде есть?
У меня была одна книга, в которой в качестве одного из авторов выступает Шилдт. Он если честно похож больше на Макаревича в передаче "Смак" .
63
06 ноября 2006 года
Zorkus
2.6K / / 04.11.2006
[QUOTE=michael_is_98]Что-нибудь из этих книг в электр.виде есть?
У меня была одна книга, в которой в качестве одного из авторов выступает Шилдт. Он если честно похож больше на Макаревича в передаче "Смак" .[/QUOTE]
Так на то это и Базовый курс. Лично я начал с нее, мне она тоже показалась до смешного простой, в большинстве мест, зато там досконально разобраны многие неочевидные мелочи, а по STL начало, такое, "неотпугивающее". Для глубокого познания у меня есть С++. Стандартная библиотека для профессионалов, Н. Джосъютиса, 27 метров в pdf, ее я считаю лучшей из всего что читал по STL. Могу кинуть на мыло или ftp открыть, если надо, но ее в принципе нетрудно и скачать:)
9
06 ноября 2006 года
Lerkin
3.0K / / 25.03.2003
Здесь точно есть:

http://proklondike.com/
http://www.natahaus.ru/
http://emanual.ru/

У С.Мейерса STL рульно описана. Н.Джосьютис - тоже хорошо. Л.Аммерааль - на Шилдта немного смахивает (как мне показалось). Дж.Бентли "Жемчужины программирования" - хотя и не по STL, но супер! Для общего развития - самый раз!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог