如果你允许使用别人的阿达95箱库,你可以尝试Ada 95 Booch Components。如果你(允许)做到这一点,不要使用名单包装,使用类别代替:
with BC.Indefinite_Unmanaged_Containers.Collections;
procedure Towers is
package Abstract_Main_Nodes
is new BC.Indefinite_Unmanaged_Containers (String);
package Main_Nodes is new Abstract_Main_Nodes.Collections;
package Abstract_All_Main_Nodes
is new BC.Indefinite_Unmanaged_Containers (Main_Nodes.Collection,
"=" => Main_Nodes."=");
package All_Main_Nodes is new Abstract_All_Main_Nodes.Collections;
end Towers;
和
with Towers; use Towers;
procedure Main is
Main_Tower : Main_Nodes.Collection;
Main_Towers : All_Main_Nodes.Collection;
begin
Main_Nodes.Append (Main_Tower, "A");
Main_Nodes.Append (Main_Tower, "B");
Main_Nodes.Append (Main_Tower, "D");
Main_Nodes.Append (Main_Tower, "E");
Main_Nodes.Append (Main_Tower, "F");
All_Main_Nodes.Append (Main_Towers, Main_Tower);
Main_Nodes.Clear (Main_Tower);
Main_Nodes.Append (Main_Tower, "C");
等
对于名单的建筑列表,看看(ADA -2005)Ada.Containers,例如John Barnes编写的第22章“Ada-2005编程”。使用Containers需要一些练习(在我看来),但是可以作为一种享受。您可能会发现双向链接列表或不确定向量或组合,是最合适的。 –
哦,好的。我忘了提及我们已经被特别要求不使用Ada - 2005.我们必须使用Ada - 95.那么有什么选择呢? 基本上,一个列表需要是一个字符串列表,另一个列表是字符串列表。 – gkamani2011
Yuck。这是一个让人们脱离Ada的练习吗? ...呵呵,或者,是否有针对Ada-2012的明确禁制令? :-) –