VB 的動態陣列是如何工作的? (即使用 C 進行 VB 動態陣列的實現思路)。

發布 科技 2024-08-05
10個回答
  1. 匿名使用者2024-01-31

    原理和std::vector是一樣的,如果在調光時重新分配記憶體,原來的東西就會被複製過來,隨機存取效能當然會保持不變。

    在 C++ 中,只需使用 std::vector 即可。

  2. 匿名使用者2024-01-30

    動態陣列建立]。

    dim ulove() as string '這是乙個字串陣列。

    動態陣列初始]。

    為了能夠保證動態陣列在動態中是正常的,我的經驗是,在定義動態陣列之後,在使用它們之前,首先:

    redim ulove(0)'這假定預設下標最小值和當前最大值均為 0; 如果程式中有選項基數 1

    ,將“0”更改為“1”。

    動態陣列變化]。

    此命令如下:redim ulove(數字變數 a)。

    此命令會將陣列轉換為上限 = 數值變數 a 的陣列。 但是,原始資料將丟失。

    preserve

    此命令如下:redim preserve ulove(數字變數 b)。

    此命令將陣列的上限設定為等於數值變數 b,但不清除小於或等於數值變數 b 的元素的值。

    動態陣列清空]。

    擦除功能。

    erase(ulove)' 清除陣列中的資料和上限大小,陣列返回到最小上限(參考選項基值,如果有) [這是個人推論,因為沒有影響程式設計,所以沒有經過驗證。 】

  3. 匿名使用者2024-01-29

    VB 是一種非常低效的語言,其目的是讓非軟體專業人員更容易使用它。

    動態陣列不是一種先進的技術,其實現效率低下:

    調整陣列大小時,VB 會將連續區域重新應用於原始內容。

    複製它並釋放原始空間顯然是一種低技術含量且效率低下的方法。

  4. 匿名使用者2024-01-28

    容器(如 C++ 向量)具有 lz 所需的功能。

  5. 匿名使用者2024-01-27

    一旦定義了動態陣列,就無法調整其大小,而動態陣列可以隨時調整其大小。

  6. 匿名使用者2024-01-26

    VB中的動態陣列可以隨時調整大小,而靜態陣列只能預先調整大小,過度使用這種方法會導致記憶體執行環境變慢。

    Visual Basic 中有兩種型別的陣列:固定大小的陣列(始終保持相同的大小)和動態陣列(其大小可以在執行時更改)。

    在 Visual Basic 中,動態陣列是幫助您高效管理記憶體的最靈活、最方便的方法。 例如,可以在短時間內使用大型陣列,然後在不使用該陣列時為系統釋放記憶體空間。

    如果不使用動態陣列,請宣告乙個盡可能大的陣列,然後擦除不必要的元素。 但是,如果這種方法使用過多,會導致記憶體的執行環境變慢。

  7. 匿名使用者2024-01-25

    靜態陣列:陣列有有限長度,動態陣列:長度有限,然後乙個乙個地增加!

  8. 匿名使用者2024-01-24

    除了樓上說的,還有一點是靜態效率高。

  9. 匿名使用者2024-01-23

    定義陣列後,為了使用陣列,必須為陣列分配所需的記憶體區域。 根據記憶體區域分配的時間,陣列可以分為靜態陣列和動態陣列。 編譯時需要分配記憶體的陣列通常稱為靜態陣列,需要在執行時分配的陣列稱為動態陣列。

    當程式不執行時,動態陣列不占用記憶體,因此該記憶體可用於其他操作。

    在 VB 中定義動態陣列通常分為兩步:首先在表單層或具有 dim、private 或 public 的標準模組中宣告乙個沒有下標的陣列(括號不能省略),然後在此過程中使用 redim 語句定義帶有下標的陣列。

    redim 語句的目的是重新指示陣列的大小。 它僅在程式執行 redim 語句時分配儲存空間。

    格式:redim(陣列名稱)(下標)[as (type)]。

    功能:更改動態陣列的大小和儲存空間。

    考試說明:

    1)下標可以是常量,也可以是具有確定值的變數。

    2)語句中引數的含義與用dim定義陣列的語句相同。

    3)redim語句只能用於動態陣列,它可以改變每個維度的大小,但不能改變維度的數量。

    4)編譯程式時,redim語句中的所有陣列都被描述為動態陣列。當執行 redim 語句時,新的上限和下限將重新分配給陣列,陣列元素的值將被初始化,所有數值元素的值將設定為 0,字串元素將設定為空字串。 檔案混亂。

    5) redim 語句可以像 dim 語句一樣定義陣列。redim 語句也可以在同一程式中多次使用。 使用中:

    在 redim 語句重新定義作弊數之前,您可以使用 :erase 語句刪除原始陣列。

  10. 匿名使用者2024-01-22

    使用 preserve 關鍵字。

    redim preserve a(ubound(a) +3)。

    例如,執行時重新定義了 a 的下標範圍,但資料過多可能會影響將 a() 調暗為整數的效率'首先定義乙個空陣列 s = array(1, 2, 3, 4, 5, 6, 7, 8, 9)。

    j = 1for i = 0 to ubound(s)if s(i) >2 and s(i) <6 thenredim preserve a(1 to j) '更新 a 的下標範圍 a(j) = s(i)。'將滿足條件的元素儲存到新的陣列元素中,注意只能為乙個元素賦值。

    j = j + 1 '修改陣列下標以儲存下乙個元素 msgbox s(i)。

    end if

    next i

    最後,a(1)=3 a(2)=4 a(3)=5

相關回答
9個回答2024-08-05

定義陣列後,為了使用陣列,必須為陣列分配所需的記憶體區域。 根據記憶體區域分配的時間,陣列可以分為靜態陣列和動態陣列。 編譯時需要分配記憶體的陣列通常稱為靜態陣列,需要在執行時分配的陣列稱為動態陣列。 >>>More

10個回答2024-08-05

我不太明白你的意思,因為我還沒有畫過向量圖,但我可以告訴你: >>>More

4個回答2024-08-05

請注意,在 C 中,指標變數上的 +1 不會使其位址值為 +1,而是將該型別的乙個變數的長度相加,例如宣告雙精度 *a; a+n 的值是 a 的位址值加上 n 個雙精度型別變數的位元組長度; >>>More

4個回答2024-08-05

將電訊號轉換為聲音訊號。

7個回答2024-08-05

冰箱的工作原理如下:

冰箱的種類很多,但分為以下幾類:壓縮式冰箱、吸收式冰箱、半導體冰箱、化學冰箱、電磁共振冰箱、太陽能冰箱、絕熱退磁冰箱、輻射製冷冰箱、固體製冷冰箱。 >>>More