1
如果我已經定義的陣列型等轉換ada.Containers.Vector到陣列
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;
我有什麼到目前爲止
從概念上講,它似乎很容易:
- 聲明Temp_Arr爲Integer_Array與V.Length的能力
- 遍歷V和複製所有元素Temp_Arr
- 返回Temp_Arr
第1步是給我雖然頭疼的問題。我曾嘗試:
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_Vector創建一個Integer_Array嗎?
'整數(V.Length)'或更好的,'自然(V.Length)' –
這是快速的感謝。這對每個Count_Type都是安全的嗎? –
不知道你的意思,但fi是不安全的我期望編譯器告訴我。所有的類型轉換手段是「是的,我打算這樣做」。 –