Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.10.22;
Скачать: [xml.tar.bz2];

Вниз

QuickSort для массивов с элементами разных типов.   Найти похожие ветки 

 
Игорь_   (2006-10-03 12:39) [0]

QuickSort для массивов с элементами разных типов.
Здравствуйте !
В примерах к Delphi есть процедура:
QuickSort(var A: array of Integer);
Как бы ее переписать, чтобы она могла работать и
с array of DWord ( Word, Int64 ) ?
Неужели ее надо переписывать для каждого типа ?


 
Ketmar ©   (2006-10-03 12:51) [1]

нет. можно сделать универсальную. но надо ли?


 
MBo ©   (2006-10-03 12:55) [2]

>Неужели ее надо переписывать для каждого типа ?
Особо переписывать не нужно, пару строчек типов переменных изменить. Можно сделать overload-процедуры(одно имя, разный тип аргументов)
А шаблонов/дженериков в Дельфи нет


 
Ketmar ©   (2006-10-03 12:57) [3]

>[2] MBo(c) 3-Oct-2006, 12:55
>А шаблонов/дженериков в Дельфи нет
зато можно сделать array of const и немного поизращаться с этим. %-)


 
MBo ©   (2006-10-03 13:04) [4]

>Ketmar ©   (03.10.06 12:57) [3]
>зато можно сделать array of const и немного поизращаться с этим. %-)

да с этими const-вариантами можно быстрой сортировкой и не заморачиваться будет ;))


 
Игорь_   (2006-10-03 13:24) [5]

>зато можно сделать array of const и немного поизращаться с этим
А можно поподробнее ?


 
Ketmar ©   (2006-10-03 13:40) [6]

можно. смотреть справку. проще говоря -- array of const позволяет передать массив чего угодно даже разнотипного. а в коде надо разбираться, что передали и заниматься мастурбицией с этим.

это шутка была такая, не заморачивайся.


 
MBo ©   (2006-10-03 13:59) [7]

Кстати, есть еще один путь - пишется универсальная процедура сортировки, которой передается указатель на функцию сравнения (отдельную для каждого типа), а если предполагается сортировать и не примитивные типы, то еще и функция обмена понадобится. Пример - TList.Sort


 
Ketmar ©   (2006-10-03 14:03) [8]

>[7] MBo(c) 3-Oct-2006, 13:59
тоже вариант. а ещё можно "съэмулировать" шаблоны при помощи INCLUDE. это вообще для извращенцев. %-)


 
Amoeba ©   (2006-10-03 15:03) [9]

http://www.delphikingdom.com/asp/viewitem.asp?catalogid=891

Стандартная библиотека Delphi (SDL) от Soletta - мощная библиотека контейнерных повторноиспользуемых классов, обобщенных алгоритмов и удобного механизма обеспечения персистентности. SDL разработана для продвинутых Delphi-программистов, использующих сложные структуры данных или желающих воспользоваться достоинствами большой библиотеки обобщенных алгоритмов. SDL будет прекрасным подспорьем программистам, знакомым с C++ STL (Standard Template Library) или ObjectSpace"s JGL (Java Generic Library). SDL - это адаптация идей Степанова и Ли применительно к Delphi.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.10.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.043 c
15-1159876401
oxffff
2006-10-03 15:53
2006.10.22
Триангуляция. Где взять готовое решение. С исходниками.


2-1159642430
vegarulez
2006-09-30 22:53
2006.10.22
Как удалить ячейку из стринг грид?


15-1159279755
Oldman
2006-09-26 18:09
2006.10.22
Вернемся таки к "Дозорам"...


2-1160235614
Iamdanil
2006-10-07 19:40
2006.10.22
Определить имя компьютера по имени сетевой папки


2-1160376880
Roman_ln
2006-10-09 10:54
2006.10.22
в проекте формы создал новую процедуру...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский