Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.22;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.09 c
1-1157741057
markers
2006-09-08 22:44
2006.10.22
TreeView


2-1160093162
БезИмени
2006-10-06 04:06
2006.10.22
Просмотреть все компоненты


2-1160262117
zaza
2006-10-08 03:01
2006.10.22
Компонент вроде listbox


3-1156338842
Michael Makushev
2006-08-23 17:14
2006.10.22
Не удаляется ADO соединение со стороны сервера MSSQL


15-1159252551
Курдль
2006-09-26 10:35
2006.10.22
"Графическое наследование ДатаСэтов" в Delphi .NET