gpt4 book ai didi

ada - 你如何在 Ada 中为向量实现通用排序?

转载 作者:行者123 更新时间:2023-12-04 20:47:34 24 4
gpt4 key购买 nike

我正在尝试对来自许多卫星之前的旧 C++ 代码进行一些基本翻译以学习 Ada,并且我对如何使用内置的 Generic_Sorting 对向量进行排序感到非常困惑。我还没有找到任何具体的例子,最接近的是现在已经不复存在的丹麦维基文章,它看起来有一个完整的例子,但文件没有抢到它:https://web.archive.org/web/20100222010428/http://wiki.ada-dk.org/index.php/Ada.Containers.Vectors#Vectors.Generic_Sorting

这是我认为应该从上面的链接工作的代码:

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 引入包的方式的根本误解,我希望确定这一点会帮助我更好地理解它。

最佳答案

Generic_Sorting是内包装到Ada.Containers.Vectors并且不能明确 with ed(如您所见)。从 Ada.Containers.Vectors本身是一个通用包,Generic_Sorting 的内包装实例化 Ada.Containers.Vectors .因此,您可以通过添加实例名称作为前缀来访问它:

package IVSorter is new IntegerVector.Generic_Sorting;

关于ada - 你如何在 Ada 中为向量实现通用排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53625197/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com