我试图从许多月前开始对旧的C ++代码进行一些基本的翻译,以学习Ada,而我对如何使用内置的Generic_Sorting对向量进行排序一无所知。我还没有找到任何实际的实例,最近的是一篇现已失效的丹麦Wiki文章,看起来它已经有了完整的例子,但档案库没有把它抓起来:{{3} }
这是我认为应该从上面的链接工作的代码:
with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
with Ada.Strings.Unbounded; use Ada.Strings.Unbounded;
with Ada.Containers.Vectors; use Ada.Containers;
procedure Vectortest is
package IntegerVector is new Vectors
(Index_Type => Natural,
Element_Type => Integer);
package IVSorter is new Generic_Sorting;
IntVec : IntegerVector.Vector;
Cursor : IntegerVector.Cursor;
begin
IntVec.Append(3);
IntVec.Append(43);
IntVec.Append(34);
IntVec.Append(8);
IVSorter.Sort(Container => IntVec);
Cursor := IntegerVector.First(Input);
while IntegerVector.Has_Element(Cursor) loop
Put(IntegerVector.Element(Cursor));
IntegerVector.Next(Cursor);
end loop;
end Vectortest;
我尝试了use
和with
的许多不同组合,但是我所能得到的只是各种错误代码。上面的代码给出了Generic_Sorting is not visible
,但是当我尝试显式声明with Ada.Containers.Vectors.Generic_Sorting
时出现错误"Ada.Containers.Vectors.Generic_Sorting" is not a predefined library unit
。我不知道我在这里做错了什么,我敢肯定这是对Ada引入软件包方式的根本误解,我希望将其确定下来将有助于我更好地理解它。
答案 0 :(得分:10)