如果我已经定义了一个数组类型,如
type Integer_Array is array(Natural range <>) of Integer;还可以使用包Ada.Containers.Vectors作为
package Integer_Vectors is new Ada.Containers.Vectors(
Element_Type => Integer,
Index_Type => Natural);
use Integer_Vectors;如何实现以下功能?
function To_Integer_Array(V : Integer_Vectors.Vector) return Integer_Array;我到目前为止有什么
从概念上来说,这似乎很简单:
第一步是让我头疼。我试过:
function To_Integer_Array(V: Integer_Vectors.Vector) return Integer_Array is
Temp_Arr: Integer_Array(1..V.Length);
begin
-- Todo: copy values here
return Temp_Arr;
end To_Integer_Array;这会让你
expected type "Standard.Integer"
found type "Ada.Containers.Count_Type"虽然这个错误是完全有意义的,但我不确定如何解决它。
有没有一种将Ada.Containers.Count_Type转换为Standard.Integer的方法?会有另一种方法从Integer_Array中创建Integer_Vector吗?
发布于 2016-10-28 11:11:05
多亏了Brian,声明现在生效了。函数的正确实现如下所示:
function To_Integer_Array(V: Integer_Vector) return Integer_Array is
Temp_Arr: Integer_Array(1..Natural(V.Length));
begin
for I in Temp_Arr'Range loop
Temp_Arr(I) := V.Element(I);
end loop;
return Temp_Arr;
end To_Integer_Array;https://stackoverflow.com/questions/40302338
复制相似问题