2015-07-25 2 views

ответ

1

В то время как он почти наверняка был заменен Ada.Containers в Ada-2005/2012, вам может быть интересен предшественник Ады STL, прежде чем Степанов превратил его в C++.

Это было опубликовано сегодня на comp.lang.ada.

Если вы перейдете на страницу Alex Stepanov's papers и прокрутите вниз до раздела «Исходный код», то в третьей ссылке есть «Дэвид Р. Муссер и Александр А. Степанов: Ada Generic Library» в виде zip-файла, распакованного и readme.

Как представляется, для компилятора VAX/VMS Ada и с 1989 года это может быть только историческим интересом, и может потребоваться некоторое усилие, требуемое даже для его создания с использованием Gnat, не говоря уже о его использовании для ваши цели.

+0

См. Также [* Ada 95 Booch Components *] (http://sourceforge.net/projects/booch95/). – trashgod

3

В то время как «Вопросы просят нас порекомендовать или найти библиотеку и ... программное обеспечение ... это не по теме,» 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.

+1

Этот подход будет поддерживать подсчет, но, вероятно, не позволит вам удалить текущий элемент, потому что это будет [фальсификация курсором] (http://www.adaic.org/resources/add_content/standards/12rm/ HTML/РМ-А-18-2.html # P90). –

+2

@SimonWright: справа; Я бы использовал вспомогательный контейнер для сбора мусора для последующего захоронения. – trashgod

+1

Что я сделал (используя вектор), было обратное преобразование с использованием индексированного доступа. Работал лечить - но не работал бы на Картах. Я пропустил Booch Components 'Delete_Item_At'. –

Смежные вопросы