Есть ли библиотека Ada, которая реализует общие алгоритмы для универсальных контейнеров, например Delete_If
, Count_If
и т. Д.? Для тех, кто знает C++, я ищу что-то похожее на C++ STL.Алгоритмы для общих контейнеров в Ada
ответ
В то время как он почти наверняка был заменен Ada.Containers
в Ada-2005/2012, вам может быть интересен предшественник Ады STL, прежде чем Степанов превратил его в C++.
Это было опубликовано сегодня на comp.lang.ada.
Если вы перейдете на страницу Alex Stepanov's papers и прокрутите вниз до раздела «Исходный код», то в третьей ссылке есть «Дэвид Р. Муссер и Александр А. Степанов: Ada Generic Library» в виде zip-файла, распакованного и readme.
Как представляется, для компилятора VAX/VMS Ada и с 1989 года это может быть только историческим интересом, и может потребоваться некоторое усилие, требуемое даже для его создания с использованием Gnat, не говоря уже о его использовании для ваши цели.
В то время как «Вопросы просят нас порекомендовать или найти библиотеку и ... программное обеспечение ... это не по теме,» Ada.Containers
, описанный в §18 of the Ada Reference Manual, скорее всего, обеспечить лучший эквивалент элементов Standard Template Library. Каждый тип контейнера использует экземпляр от Ada.Iterator_Interfaces
до Iterate
через контейнер, вызывая любой предикат (поиск, подсчет и т. Д.), Определен в вашей реализации Process
. См. §A.18.32 Example of Container Use и §8.3 Iterating and updating containers.
Этот подход будет поддерживать подсчет, но, вероятно, не позволит вам удалить текущий элемент, потому что это будет [фальсификация курсором] (http://www.adaic.org/resources/add_content/standards/12rm/ HTML/РМ-А-18-2.html # P90). –
@SimonWright: справа; Я бы использовал вспомогательный контейнер для сбора мусора для последующего захоронения. – trashgod
Что я сделал (используя вектор), было обратное преобразование с использованием индексированного доступа. Работал лечить - но не работал бы на Картах. Я пропустил Booch Components 'Delete_Item_At'. –
- 1. В общих пакетах Ada
- 2. Создание общих библиотек для Ada
- 3. Алгоритмы общего поиска для классов контейнеров Qt
- 4. C#: Создание списков общих контейнеров?
- 5. Создание общих детских пакетов в Ada 95
- 6. Почему нет эквивалентных в C# для общих параметров Ada?
- 7. Перегрузка/специализированные алгоритмы STL для нелокальных контейнеров (конец базы данных)
- 8. Почему кучи в C++ реализованы как алгоритмы вместо контейнеров?
- 9. Ada wrapper для CLIPS
- 10. Характер для Integer Ada
- 11. Glade-3 для Ada
- 12. Ada компиляторы для Linux
- 13. wxWidgets для Ada?
- 14. Функция Variadic в Ada (C - Ada binding)?
- 15. нажмите обновления для gcloud контейнеров/контейнеров
- 16. Нужно ли управлять временем жизни TEnumerators из общих контейнеров?
- 17. Алгоритмы кластеризации для строк
- 18. Алгоритмы для персонализированного содержимого
- 19. Алгоритмы для «укорочения» строк?
- 20. Где я должен помещать алгоритмы для общих конечных точек в проект Swaggerize-Restify?
- 21. Алгоритмы STL: Почему нет дополнительного интерфейса для контейнеров (дополнительно к парам итераторов)?
- 22. Алгоритмы для: проверки принтера
- 23. Алгоритмы для обработки строк
- 24. Алгоритмы
- 25. Тестовая структура для контейнеров
- 26. Приложение MFC для контейнеров
- 27. Сопротивление для контейнеров
- 28. Программа конвертации букв для Ada
- 29. object.method обозначения в Ada
- 30. диапазон для контейнеров STL
См. Также [* Ada 95 Booch Components *] (http://sourceforge.net/projects/booch95/). – trashgod