Алгоритмы для универсальных контейнеров в Ada
Есть ли библиотека Ada, которая реализует общие алгоритмы для универсальных контейнеров, например Delete_If
, Count_If
, так далее.? Для тех, кто знает C++, я ищу что-то похожее на C++ STL.
2 ответа
Хотя это почти наверняка было заменено Ada.Containers
в Ada-2005/2012 вас может заинтересовать предшественник Ada STL, прежде чем Степанов преобразовал его в C++.
Это было опубликовано сегодня на comp.lang.ada.
Если вы перейдете к документам Алекса Степанова и прокрутите вниз до раздела "Исходный код", третья ссылка будет на "Дэвид Р. Муссер и Александр А. Степанов: универсальная библиотека Ada" в виде zip-файла, распакованного файла и файла readme.
Как представляется, это относится к компилятору Ada VAX/VMS и датируется 1989 годом, он может представлять только исторический интерес, и могут потребоваться некоторые усилия для его создания с использованием Gnat, не говоря уже об использовании его в ваших целях.
В то время как "вопросы, которые мы просим порекомендовать или найти… библиотеку программного обеспечения… не по теме", Ada.Containers
, описанный в §18 Справочного руководства Ada, вероятно, обеспечит лучший эквивалент элементам стандартной библиотеки шаблонов. Каждый тип контейнера использует экземпляр Ada.Iterator_Interfaces
в Iterate
через контейнер, вызывая любой предикат (find, count и т. д.), определенный в вашей реализации Process
, См. §A.18.32 Пример использования контейнера и §8.3. Итерация и обновление контейнеров для получения подробной информации.