Как известно в C++ есть стандартизированная библиотека STL, которая содержит набор базовых классов, таких как динамические массивы, карты, очереди, стеки и функции их обработки. Есть ли в Delphi аналог STL из C++?
Здравствуйте Alex, вы писали:
A>Как известно в C++ есть стандартизированная библиотека STL, которая содержит набор базовых классов, таких как динамические массивы, карты, очереди, стеки и функции их обработки. Есть ли в Delphi аналог STL из C++?
Как известно, в Object Pascal нет шаблонов (или я ошибаюсь?). А STL — это "Standard Template Library" — т.е. библиотека шаблонов и содержит она не набор базовых классов, а набор шаблонов (или я снова ошибаюсь?). Может ли быть в Delphi ее аналог? А нужен ли в Delphi ее аналог? А что еще есть в Delphi аналогичного C++? Кроме Windows, разумеется... :)
Здравствуйте The Lex, вы писали:
TL>Здравствуйте Alex, вы писали:
A>>Как известно в C++ есть стандартизированная библиотека STL, которая содержит набор базовых классов, таких как динамические массивы, карты, очереди, стеки и функции их обработки. Есть ли в Delphi аналог STL из C++?
TL>Как известно, в Object Pascal нет шаблонов (или я ошибаюсь?). А STL — это "Standard Template Library" — т.е. библиотека шаблонов и содержит она не набор базовых классов, а набор шаблонов (или я снова ошибаюсь?). Может ли быть в Delphi ее аналог? А нужен ли в Delphi ее аналог? А что еще есть в Delphi аналогичного C++? Кроме Windows, разумеется... :)
Ну, мужик! Тебе любой делфинарий ответит, шоо в Дельфе все можно сделать (и обычно с помощью TList). ;o)
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте VladD2, вы писали:
VD>Здравствуйте The Lex, вы писали:
VD>Ну, мужик! Тебе любой делфинарий ответит, шоо в Дельфе все можно сделать (и обычно с помощью TList). ;o)
Дык, а я че, внатуре, не так грю?! :) Дык в Дельфе наша галимая STL нафиг никому не надо!!! :)) И ваще, Дельфя вон и под Линус как нечо делать пишет!!! Даже кодировку русскую менять не надо! Кросплатформенность, одним словом...
Куда мне до нее? Она была в Париже.
Мы снова говорим на разных языках...
VD>>Ну, мужик! Тебе любой делфинарий ответит, шоо в Дельфе все можно сделать (и обычно с помощью TList). ;o)
Да, ребята, Ваши ответы поражают обширностью Ваших познаний!
Повторю вопрос: есть ли в Delphi что-то подобное STL?
Небольшое уточнение: я знаю, что в Паскале не поддерживаются шаблоны, однако вопрос в другом:
есть ли библиотека, которая содержит:
1. Классы, такие как списки, деревья, очереди, вектора, стеки, ассоциативные массивы?
Что-то мне подсказывает, что TList это не совсем паскаль, а чистый VCL, и реализовать на его основе ассоциативный массив будет не просто.
:)
2. Стандартные алгоритмы, такие как поиск элемента, сортировки, и т. д.
Вот собс-но, в чем состоял оригинальный вопрос (который от Alex'а)
Здравствуйте Вовка Рыбаков, вы писали: ВР>Небольшое уточнение: я знаю, что в Паскале не поддерживаются шаблоны, однако вопрос в другом: ВР>есть ли библиотека, которая содержит: ВР>1. Классы, такие как списки, деревья, очереди, вектора, стеки, ассоциативные массивы? ВР>Что-то мне подсказывает, что TList это не совсем паскаль, а чистый VCL, и реализовать на его основе ассоциативный массив будет не просто. ВР>:) ВР>2. Стандартные алгоритмы, такие как поиск элемента, сортировки, и т. д. ВР>Вот собс-но, в чем состоял оригинальный вопрос (который от Alex'а)
На мой взгляд(очень субьективный) в Дельфи всё есть, или реализуемо, другой вопрос, что VCL слишком уж визуальная и общих структур данных и алгоритмов там не очень много, в принципе, если что-то необходимо, то есть большая вероятность, что по крохам можно насобирать по крохам в сети, и уж в последнюю очередь списать с C++. По-моему всё это происходит из-за того, что си++ де факто является более кросс-платформенным, чем тот же Паскаль, при чём не язык тут виноват, а просто так исторически сложилось...
В Delphi есть модуль Contnrs.pas и в нём описаны типы стек, очередь, список и т.д.
Посмотри его, может найдешь что надо.
VD>>>Ну, мужик! Тебе любой делфинарий ответит, шоо в Дельфе все можно сделать (и обычно с помощью TList). ;o)
ВР>Да, ребята, Ваши ответы поражают обширностью Ваших познаний! ВР>Повторю вопрос: есть ли в Delphi что-то подобное STL?
ВР>Небольшое уточнение: я знаю, что в Паскале не поддерживаются шаблоны, однако вопрос в другом: ВР>есть ли библиотека, которая содержит: ВР>1. Классы, такие как списки, деревья, очереди, вектора, стеки, ассоциативные массивы? ВР>Что-то мне подсказывает, что TList это не совсем паскаль, а чистый VCL, и реализовать на его основе ассоциативный массив будет не просто. ВР>:) ВР>2. Стандартные алгоритмы, такие как поиск элемента, сортировки, и т. д. ВР>Вот собс-но, в чем состоял оригинальный вопрос (который от Alex'а)
ВР>С уважением ВР> Володя.
Re[5]: Есть ли в Delphi аналог STL из C++?
От:
Аноним
Дата:
04.10.01 12:46
Оценка:
ВР>Небольшое уточнение: я знаю, что в Паскале не поддерживаются шаблоны, однако вопрос в другом: ВР>есть ли библиотека, которая содержит: ВР>1. Классы, такие как списки, деревья, очереди, вектора, стеки, ассоциативные массивы? ВР>Что-то мне подсказывает, что TList это не совсем паскаль, а чистый VCL, и реализовать на его основе ассоциативный массив будет не просто. ВР>:) ВР>2. Стандартные алгоритмы, такие как поиск элемента, сортировки, и т. д. ВР>Вот собс-но, в чем состоял оригинальный вопрос (который от Alex'а)
На сайте http://www.rmarsh.com/ есть библиотека maps — бесплатная
Автор также упоминает (и сильно хвалит) другую библиотеку — SDL — (Standard Delphi Library). Там вроде многое перенесено из STL в Delphi. НО эта библиотека не бесплатна и к тому же ее теперь на прежнем адресе нет. Раньше находилась на http://www.soletta.com, а теперь там только какие-то личные фотки автора и никакого упоминания о программировании.
Есть еще библиотека — http://www.caravan.ru/~alexch/ (бесплатная).Поддерживает вектора, очереди, стеки, потоки, словари для всех базовых типов Object Pascal.
Здравствуйте Вовка Рыбаков, Вы писали:
ВР>Да, ребята, Ваши ответы поражают обширностью Ваших познаний! ВР>Повторю вопрос: есть ли в Delphi что-то подобное STL?
ВР>Небольшое уточнение: я знаю, что в Паскале не поддерживаются шаблоны, однако вопрос в другом: ВР>есть ли библиотека, которая содержит: ВР>1. Классы, такие как списки, деревья, очереди, вектора, стеки, ассоциативные массивы? ВР>Что-то мне подсказывает, что TList это не совсем паскаль, а чистый VCL, и реализовать на его основе ассоциативный массив будет не просто. ВР>:) ВР>2. Стандартные алгоритмы, такие как поиск элемента, сортировки, и т. д. ВР>Вот собс-но, в чем состоял оригинальный вопрос (который от Alex'а)
ВР>С уважением ВР> Володя.
А зачем тебе тогда Дельфи пользовать? Пиши на C++ Builder'е, я сам его предпочитаю, во многом, благодаря именно поддержке STL. К тому же, родной C++...
Здравствуйте Alex, Вы писали:
A>Как известно в C++ есть стандартизированная библиотека STL, которая содержит набор базовых классов, таких как динамические массивы, карты, очереди, стеки и функции их обработки. Есть ли в Delphi аналог STL из C++?
A>Заранее спасибо!
Динамический массив в Дельфи так и называется. Его поддержка встроена в язык.
Список — TList и его производные.
Ассоциативный массив с ключом-строкой — TStrings и его производные.
TList довольно универсальный класс. Может использоваться по разному.
Встроенный в язык тип множество (не более 255 элементов).
Вообще, многое, что в Си++ реализовано в библиотеках в Дельфи встроено в язык.
Здравствуйте
такое ощущение, что все тут обсуждают только структуры данных.
но , почему то никто ничего не говорит про алгоритмы! алгоритмы, черт побери, где алгоритмы?
я не монстр в дельфи, и даже в c++ не гуру, но, блин, разве stl только из структур данных состоит? а где ж тогда в TList функционалы, алгоритмы, предикаты и проч.?
my $.02
Re: Есть ли в Delphi аналог STL из C++?
От:
Аноним
Дата:
04.12.01 10:19
Оценка:
В Delphi нет шаблонов, поэтому говорить об в чистом виде STL не будем,
Второй момент и самое главное — Delphi не стандартизирован, как С++,
поэтому пишите свои классы потихоньку для себя )
!>такое ощущение, что все тут обсуждают только структуры данных.
!>но , почему то никто ничего не говорит про алгоритмы! алгоритмы, черт побери, где алгоритмы?
!>я не монстр в дельфи, и даже в c++ не гуру, но, блин, разве stl только из структур данных состоит? а где ж тогда в TList функционалы, алгоритмы, предикаты и проч.?
Назовите, пожалуйста, натривиальные алгоритмы, реализованные в STL (кроме сортировки).
С уважением, Евгений.
ну и всевозможные производные, получаемые настраиванием предикатов
если есть все в делфи, то покажите , где искать, пож.
а то из-за этого в свое время пересел на vc++
Здравствуйте Eugene_B, Вы писали:
EB>Здравствуйте ole!, Вы писали:
!>>такое ощущение, что все тут обсуждают только структуры данных.
!>>но , почему то никто ничего не говорит про алгоритмы! алгоритмы, черт побери, где алгоритмы?
!>>я не монстр в дельфи, и даже в c++ не гуру, но, блин, разве stl только из структур данных состоит? а где ж тогда в TList функционалы, алгоритмы, предикаты и проч.?
EB>Назовите, пожалуйста, натривиальные алгоритмы, реализованные в STL (кроме сортировки). EB>С уважением, Евгений.
с каких это пор сортировка — нетривиальный алгоритм ( ), тем более для программирующих на дельфи??
Здравствуйте Аноним, Вы писали:
А>В Delphi нет шаблонов, поэтому говорить об в чистом виде STL не будем, А>Второй момент и самое главное — Delphi не стандартизирован, как С++, А>поэтому пишите свои классы потихоньку для себя )
Шоблоны это только средство. Их можно имулировать на любом языке в котором поддерживается препроцессорное включение файлов (а-ля #include). И дельфи здесь не исключение. Вся проблема в том, что основной массе вбравшей Дельфи весе эти алгоритмы и другие наваторства по-барабану. А вовсе не в убогости языка. С куда убогей, а на ней и NT и Unix-ы писаны.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
!> с каких это пор сортировка — нетривиальный алгоритм ( :wow: ), тем более для программирующих на дельфи??
Проситал 2 ваших сообщения и был весьма озадачен, что их написал один и тот же человек.
Что то я вас не понимаю. То вам все алгоритмы в STL нетривиальны, то qsort — тривиальный. Или это так только для сишников, по вашему мнению?
Здравствуйте VladD2, Вы писали:
VD>Шоблоны это только средство. Их можно имулировать на любом языке в котором поддерживается препроцессорное включение файлов (а-ля #include). И дельфи здесь не исключение. Вся проблема в том, что основной массе вбравшей Дельфи весе эти алгоритмы и другие наваторства по-барабану. :( А вовсе не в убогости языка. С куда убогей, а на ней и NT и Unix-ы писаны. :-\
1. Между шаблонами и препроцессором разница как минимум в том, что они поддерживают контроль типов.
2. Что вы имеете в виду под "убогостью языка"?
Re[3]: Есть ли в Delphi аналог STL из C++?
От:
Аноним
Дата:
23.03.05 19:55
Оценка:
VD>Шоблоны это только средство. Их можно имулировать на любом языке в котором поддерживается препроцессорное включение файлов (а-ля #include). И дельфи здесь не исключение. Вся проблема в том, что
Стоп. Include в делфях действительно есть, и Define тоже. Но возможности задействовать подстановку помоему нет. Типа
Здравствуйте, Вовка Рыбаков, Вы писали: ВР>Повторю вопрос: есть ли в Delphi что-то подобное STL?
Можно использовать модуль Mxarrays из пакета "Decision Cube".
А> Автор также упоминает (и сильно хвалит) другую библиотеку — SDL — (Standard Delphi Library). Там вроде многое перенесено из STL в Delphi. НО эта библиотека не бесплатна и к тому же ее теперь на прежнем адресе нет. Раньше находилась на А>http://www.soletta.com, а теперь там только какие-то личные фотки автора и никакого упоминания о программировании.
Эта библиотека теперь называется DeCAL. Ее можно найти на sourceforge.net.