容器與陣列

2021-09-28 19:05:23 字數 911 閱讀 7794

關於定義陣列,我們都知道,當我們定義完乙個陣列,該陣列的成員數就已經固定了,即陣列是靜態分配記憶體的,一旦分配完記憶體大小,便不可改變。

例如,定義乙個成員數為n的整型陣列

則這個n應該表示的是常量,而不是變數

int nums[n]

;//在寫出該語句後,nums陣列的成員數就已經不可變了

更形象一些,假設我們需要自定義陣列的成員數,我們可能會這麼做。

#include

using

namespace std;

intmain

(void

)

但嘗試進行編譯時,會發現編譯器提示在int nums[n];語句的所在行報錯了,原因便是之前說明的,定義陣列成員數接收的引數必須是常量。

而容器則可以改變這一切,它分配記憶體的方式是動態分配的。它相比於常規陣列,明顯的優點是能實現自定義陣列的操作。

例如,用它的方式可以實現上述的**。需要注意的是,使用它需要用到vector標頭檔案,所以加上就好了。

#include

#include

using

namespace std;

intmain

(void

)return0;

}

以我自己的例子,在暑假的時候,不知道如何自定義陣列成員數大小,但為了實現掃雷遊戲的難度設定(即布置地圖的格仔與雷的個數,布置地圖需要用到陣列操作),而陣列成員數的設定又不能接受變數,只能每個自定義函式都需要重複寫幾遍,這樣的話就異常繁瑣且稍有不慎就會出差錯。而學習了容器之後,可以實現自定義陣列成員數就完全可以避免這樣繁瑣的操作了。

當然,容器也有它的缺點,即它的效率比陣列要低,所以,如果沒有動態分配記憶體的必要,用常規陣列的方式操作依然是不二之選。

陣列與容器

通過下面的一道題,來分析陣列與容器的一些不同之處 題 編寫必要的 將乙個陣列賦給另乙個陣列,然後把這段 改用 vector 實現。考慮如何將乙個 vector 賦給另乙個 vector。解答 一 陣列 include using namespace std int main int b array ...

陣列與容器

通過下面的一道題,來分析陣列與容器的一些不同之處 題 編寫必要的 將乙個陣列賦給另乙個陣列,然後把這段 改用 vector 實現。考慮如何將乙個 vector 賦給另乙個 vector。解答 一 陣列 include using namespace std int main int b array ...

容器與陣列

陣列 array 容器 vector 陣列與容器最大的區別是宣告時陣列的大小固定且保持不變,vector是序列容器,可改變大小的陣列。接下來,分別詳細分析陣列與容器的不同 宣告 array是乙個包裝固定大小陣列的容器,因此宣告時必須確定其大小 arrayarray name 例 arrayn vec...